CVE-2022-49082·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: scsi: mpt3sas: Fix use after free in _scsih_expander_node_remove() The function mpt3sas_transport_port_remove() called in _scsih_expander_node_remove() frees the port field of the sas_expander structure, leading to the following use-after-free splat from KASAN when the ioc_info() call following that function is executed (e.g. when doing rmmod of the driver module): [ 3479.371167] ================================================================== [ 3479.378496] BUG: KASAN: use-after-free in _scsih_expander_node_remove+0x710/0x750 [mpt3sas] [ 3479.386936] Read of size 1 at addr ffff8881c037691c by task rmmod/1531 [ 3479.393524] [ 3479.395035] CPU: 18 PID: 1531 Comm: rmmod Not tainted 5.17.0-rc8+ #1436 [ 3479.401712] Hardware name: Supermicro Super Server/H12SSL-NT, BIOS 2.1 06/02/2021 [ 3479.409263] Call Trace: [ 3479.411743] <TASK> [ 3479.413875] dump_stack_lvl+0x45/0x59 [ 3479.417582] print_address_description.constprop.0+0x1f/0x120 [ 3479.423389] ? _scsih_expander_node_remove+0x710/0x750 [mpt3sas] [ 3479.429469] kasan_report.cold+0x83/0xdf [ 3479.433438] ? _scsih_expander_node_remove+0x710/0x750 [mpt3sas] [ 3479.439514] _scsih_expander_node_remove+0x710/0x750 [mpt3sas] [ 3479.445411] ? _raw_spin_unlock_irqrestore+0x2d/0x40 [ 3479.452032] scsih_remove+0x525/0xc90 [mpt3sas] [ 3479.458212] ? mpt3sas_expander_remove+0x1d0/0x1d0 [mpt3sas] [ 3479.465529] ? down_write+0xde/0x150 [ 3479.470746] ? up_write+0x14d/0x460 [ 3479.475840] ? kernfs_find_ns+0x137/0x310 [ 3479.481438] pci_device_remove+0x65/0x110 [ 3479.487013] __device_release_driver+0x316/0x680 [ 3479.493180] driver_detach+0x1ec/0x2d0 [ 3479.498499] bus_remove_driver+0xe7/0x2d0 [ 3479.504081] pci_unregister_driver+0x26/0x250 [ 3479.510033] _mpt3sas_exit+0x2b/0x6cf [mpt3sas] [ 3479.516144] __x64_sys_delete_module+0x2fd/0x510 [ 3479.522315] ? free_module+0xaa0/0xaa0 [ 3479.527593] ? __cond_resched+0x1c/0x90 [ 3479.532951] ? lockdep_hardirqs_on_prepare+0x273/0x3e0 [ 3479.539607] ? syscall_enter_from_user_mode+0x21/0x70 [ 3479.546161] ? trace_hardirqs_on+0x1c/0x110 [ 3479.551828] do_syscall_64+0x35/0x80 [ 3479.556884] entry_SYSCALL_64_after_hwframe+0x44/0xae [ 3479.563402] RIP: 0033:0x7f1fc482483b ... [ 3479.943087] ================================================================== Fix this by introducing the local variable port_id to store the port ID value before executing mpt3sas_transport_port_remove(). This local variable is then used in the call to ioc_info() instead of dereferencing the freed port structure.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.17.3
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 11% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2022-49082 scores 7.8 on CVSS, so a successful attack would be serious — but at <0.1%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 5.17
Until: 5.17.3
Fixed in: 5.17.3
How to fix this CVE
Update your Linux kernel to version 5.17.3 or later to resolve a use-after-free vulnerability in the mpt3sas SCSI driver that occurs during expander node removal. This vulnerability can cause kernel crashes or memory corruption when the driver module is unloaded. Apply the patch immediately if you are running kernel versions 5.17 through 5.17.2 on systems with mpt3sas RAID controllers.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to display your current kernel version and verify if it falls within the affected range (5.17.0 to 5.17.2)
- Check if mpt3sas driver is loaded by running 'lsmod | grep mpt3sas' — if present, the vulnerable code path may be active
- Examine kernel logs with 'dmesg | grep -i kasan' or 'journalctl -k | grep -i use-after-free' for KASAN memory error reports related to _scsih_expander_node_remove
- After patching, reboot the system and verify the new kernel version with 'uname -r' to confirm the update to 5.17.3 or later
FAQ
What is CVE-2022-49082?
CVE-2022-49082 is a use-after-free vulnerability in the Linux kernel's mpt3sas SCSI driver where the port field is freed and then dereferenced during SAS expander node removal, potentially causing kernel crashes or memory corruption.
Is CVE-2022-49082 being actively exploited?
No, there is no evidence of active exploitation in the wild, and no public exploits are available for this vulnerability. It is typically triggered during driver module unload operations.
What versions of Kernel are affected by CVE-2022-49082?
Linux kernel versions 5.17.0 through 5.17.2 are affected. The vulnerability was fixed in kernel 5.17.3 and later versions.
How do I check if my server is vulnerable to CVE-2022-49082?
Run 'uname -r' to check your kernel version. If the output shows 5.17.0, 5.17.1, or 5.17.2, your system is vulnerable. Additionally, verify if mpt3sas is loaded with 'lsmod | grep mpt3sas'.
Does Defensia detect CVE-2022-49082?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2022-49082 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-49082. Free for 1 server.
Get started free