CVE-2022-49626·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: sfc: fix use after free when disabling sriov Use after free is detected by kfence when disabling sriov. What was read after being freed was vf->pci_dev: it was freed from pci_disable_sriov and later read in efx_ef10_sriov_free_vf_vports, called from efx_ef10_sriov_free_vf_vswitching. Set the pointer to NULL at release time to not trying to read it later. Reproducer and dmesg log (note that kfence doesn't detect it every time): $ echo 1 > /sys/class/net/enp65s0f0np0/device/sriov_numvfs $ echo 0 > /sys/class/net/enp65s0f0np0/device/sriov_numvfs BUG: KFENCE: use-after-free read in efx_ef10_sriov_free_vf_vswitching+0x82/0x170 [sfc] Use-after-free read at 0x00000000ff3c1ba5 (in kfence-#224): efx_ef10_sriov_free_vf_vswitching+0x82/0x170 [sfc] efx_ef10_pci_sriov_disable+0x38/0x70 [sfc] efx_pci_sriov_configure+0x24/0x40 [sfc] sriov_numvfs_store+0xfe/0x140 kernfs_fop_write_iter+0x11c/0x1b0 new_sync_write+0x11f/0x1b0 vfs_write+0x1eb/0x280 ksys_write+0x5f/0xe0 do_syscall_64+0x5c/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae kfence-#224: 0x00000000edb8ef95-0x00000000671f5ce1, size=2792, cache=kmalloc-4k allocated by task 6771 on cpu 10 at 3137.860196s: pci_alloc_dev+0x21/0x60 pci_iov_add_virtfn+0x2a2/0x320 sriov_enable+0x212/0x3e0 efx_ef10_sriov_configure+0x67/0x80 [sfc] efx_pci_sriov_configure+0x24/0x40 [sfc] sriov_numvfs_store+0xba/0x140 kernfs_fop_write_iter+0x11c/0x1b0 new_sync_write+0x11f/0x1b0 vfs_write+0x1eb/0x280 ksys_write+0x5f/0xe0 do_syscall_64+0x5c/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae freed by task 6771 on cpu 12 at 3170.991309s: device_release+0x34/0x90 kobject_cleanup+0x3a/0x130 pci_iov_remove_virtfn+0xd9/0x120 sriov_disable+0x30/0xe0 efx_ef10_pci_sriov_disable+0x57/0x70 [sfc] efx_pci_sriov_configure+0x24/0x40 [sfc] sriov_numvfs_store+0xfe/0x140 kernfs_fop_write_iter+0x11c/0x1b0 new_sync_write+0x11f/0x1b0 vfs_write+0x1eb/0x280 ksys_write+0x5f/0xe0 do_syscall_64+0x5c/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.18.13
- 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 10% 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-49626 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.16
Until: 5.18.13
Fixed in: 5.18.13
How to fix this CVE
Update your Linux kernel to version 5.18.13 or later to remediate this use-after-free vulnerability in SR-IOV virtual function cleanup. The flaw occurs when disabling SR-IOV on network devices, where a freed PCI device pointer is accessed during vport shutdown, potentially causing kernel crashes or memory corruption. Ensure your system receives the latest kernel security patches immediately.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r — Vulnerable if version is between 5.16 and 5.18.12 (inclusive)
- Verify SR-IOV capable NIC is present: lspci | grep -i 'ethernet\|network' — Look for devices supporting VF (Virtual Function) assignment
- Monitor kernel logs for KFENCE errors: dmesg | grep -i 'use-after-free\|efx_ef10_sriov' — Watch for memory safety violations during SR-IOV operations
- After patching, confirm new kernel version: uname -r — Should show 5.18.13 or later, then reboot: sudo reboot
FAQ
What is CVE-2022-49626?
This vulnerability is a use-after-free flaw in the Linux kernel's SR-IOV driver for Solarflare network adapters. When disabling SR-IOV virtual functions, the driver attempts to access a PCI device pointer that has already been freed by the kernel, leading to potential kernel panic or memory corruption.
Is CVE-2022-49626 being actively exploited?
No, this CVE is not listed in CISA's Known Exploited Vulnerabilities catalog and has no public exploits available. However, it can be triggered locally by any user with network device configuration privileges.
What versions of Kernel are affected by CVE-2022-49626?
Linux kernel versions 5.16 through 5.18.12 are affected. The vulnerability was fixed in kernel 5.18.13 and backported to stable branches 5.17.x and 5.16.x.
How do I check if my server is vulnerable to CVE-2022-49626?
Run 'uname -r' to check your kernel version. If it shows 5.16.x, 5.17.x, or 5.18.0 through 5.18.12, your system is vulnerable. Cross-reference with 'ethtool -i <interface> | grep driver' to confirm if Solarflare (sfc) driver is in use.
Does Defensia detect CVE-2022-49626?
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-49626 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/3199e34912d84cdfb8a93a984c5ae5c73fb13e84
- https://git.kernel.org/stable/c/58d93e9d160c0de6d867c7eb4c2206671a351eb1
- https://git.kernel.org/stable/c/9c854ae512b89229aeee93849e9bd4c115b37909
- https://git.kernel.org/stable/c/bcad880865bfb421885364b1f0c7351280fe2b97
- https://git.kernel.org/stable/c/c2240500817b3b4b996cdf2a461a3a5679f49b94
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-49626. Free for 1 server.
Get started free