In the Linux kernel, the following vulnerability has been resolved:
vfio/pci: Disable auto-enable of exclusive INTx IRQ
Currently for devices requiring masking at the irqchip for INTx, ie.
devices without DisINTx support, the IRQ is enabled in request_irq()
and subsequently disabled as necessary to align with the masked status
flag. This presents a window where the interrupt could fire between
these events, resulting in the IRQ incrementing the disable depth twice.
This would be unrecoverable for a user since the masked flag prevents
nested enables through vfio.
Instead, invert the logic using IRQF_NO_AUTOEN such that exclusive INTx
is never auto-enabled, then unmask as required.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/vfio/pci/vfio_pci_intrs.c"
],
"versions": [
{
"version": "89e1f7d4c66d",
"lessThan": "26389925d6c2",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "561d5e1998d5",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "b7a2f0955ffc",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "139dfcc4d723",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "2a4a666c4510",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "3b3491ad0f80",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "bf0bc84a20e6",
"status": "affected",
"versionType": "git"
},
{
"version": "89e1f7d4c66d",
"lessThan": "fe9a7082684e",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/vfio/pci/vfio_pci_intrs.c"
],
"versions": [
{
"version": "3.6",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.6",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.274",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.215",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.154",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.84",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.24",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.7.12",
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.8.3",
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.9",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/139dfcc4d723ab13469881200c7d80f49d776060
git.kernel.org/stable/c/26389925d6c2126fb777821a0a983adca7ee6351
git.kernel.org/stable/c/2a4a666c45107206605b7b5bc20545f8aabc4fa2
git.kernel.org/stable/c/3b3491ad0f80d913e7d255941d4470f4a4d9bfda
git.kernel.org/stable/c/561d5e1998d58b54ce2bbbb3e843b669aa0b3db5
git.kernel.org/stable/c/b7a2f0955ffceffadfe098b40b50307431f45438
git.kernel.org/stable/c/bf0bc84a20e6109ab07d5dc072067bd01eb931ec
git.kernel.org/stable/c/fe9a7082684eb059b925c535682e68c34d487d43
lists.debian.org/debian-lts-announce/2024/06/msg00017.html