In the Linux kernel, the following vulnerability has been resolved:
net:sfc: fix non-freed irq in legacy irq mode
SFC driver can be configured via modparam to work using MSI-X, MSI or legacy IRQ interrupts. In the last one, the interrupt was not properly released on module remove.
It was not freed because the flag irqs_hooked was not set during initialization in the case of using legacy IRQ.
Example of (trimmed) trace during module remove without this fix:
removeprocentry: removing non-empty directory 'irq/125', leaking at least '0000:3b:00.1' WARNING: CPU: 39 PID: 3658 at fs/proc/generic.c:715 removeprocentry+0x15c/0x170 ...trimmed... Call Trace: unregisterirqproc+0xe3/0x100 freedesc+0x29/0x70 irqfreedescs+0x47/0x70 mpunmapirq+0x58/0x60 acpiunregistergsiioapic+0x2a/0x40 acpipciirqdisable+0x78/0xb0 pcidisabledevice+0xd1/0x100 efxpciremove+0xa1/0x1e0 [sfc] pcidevice_remove+0x38/0xa0 __devicereleasedriver+0x177/0x230 driverdetach+0xcb/0x110 busremovedriver+0x58/0xd0 pciunregisterdriver+0x2a/0xb0 efxexit_module+0x24/0xf40 [sfc] _dosysdeletemodule.constprop.0+0x171/0x280 ? exittousermodeprepare+0x83/0x1d0 dosyscall64+0x3d/0x80 entrySYSCALL64afterhwframe+0x44/0xae RIP: 0033:0x7f9f9385800b ...trimmed...
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-47283.json"
[
{
"events": [
{
"introduced": "0"
},
{
"fixed": "5.10.44"
}
]
},
{
"events": [
{
"introduced": "5.11"
},
{
"fixed": "5.12.11"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.13-rc1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.13-rc2"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.13-rc3"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.13-rc4"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.13-rc5"
}
]
}
]