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.
[
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "26389925d6c2",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "561d5e1998d5",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "b7a2f0955ffc",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "139dfcc4d723",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "2a4a666c4510",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "3b3491ad0f80",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "bf0bc84a20e6",
"versionType": "git"
},
{
"status": "affected",
"version": "89e1f7d4c66d",
"lessThan": "fe9a7082684e",
"versionType": "git"
}
],
"programFiles": [
"drivers/vfio/pci/vfio_pci_intrs.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "3.6",
"versionType": "custom"
},
{
"status": "unaffected",
"version": "5.4.274",
"versionType": "custom",
"lessThanOrEqual": "5.4.*"
},
{
"status": "unaffected",
"version": "5.10.215",
"versionType": "custom",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.15.154",
"versionType": "custom",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.84",
"versionType": "custom",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.24",
"versionType": "custom",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.7.12",
"versionType": "custom",
"lessThanOrEqual": "6.7.*"
},
{
"status": "unaffected",
"version": "6.8.3",
"versionType": "custom",
"lessThanOrEqual": "6.8.*"
},
{
"status": "unaffected",
"version": "6.9",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/vfio/pci/vfio_pci_intrs.c"
],
"defaultStatus": "affected"
}
]
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