CVE-2022-49390·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: macsec: fix UAF bug for real_dev Create a new macsec device but not get reference to real_dev. That can not ensure that real_dev is freed after macsec. That will trigger the UAF bug for real_dev as following: ================================================================== BUG: KASAN: use-after-free in macsec_get_iflink+0x5f/0x70 drivers/net/macsec.c:3662 Call Trace: ... macsec_get_iflink+0x5f/0x70 drivers/net/macsec.c:3662 dev_get_iflink+0x73/0xe0 net/core/dev.c:637 default_operstate net/core/link_watch.c:42 [inline] rfc2863_policy+0x233/0x2d0 net/core/link_watch.c:54 linkwatch_do_dev+0x2a/0x150 net/core/link_watch.c:161 Allocated by task 22209: ... alloc_netdev_mqs+0x98/0x1100 net/core/dev.c:10549 rtnl_create_link+0x9d7/0xc00 net/core/rtnetlink.c:3235 veth_newlink+0x20e/0xa90 drivers/net/veth.c:1748 Freed by task 8: ... kfree+0xd6/0x4d0 mm/slub.c:4552 kvfree+0x42/0x50 mm/util.c:615 device_release+0x9f/0x240 drivers/base/core.c:2229 kobject_cleanup lib/kobject.c:673 [inline] kobject_release lib/kobject.c:704 [inline] kref_put include/linux/kref.h:65 [inline] kobject_put+0x1c8/0x540 lib/kobject.c:721 netdev_run_todo+0x72e/0x10b0 net/core/dev.c:10327 After commit faab39f63c1f ("net: allow out-of-order netdev unregistration") and commit e5f80fcf869a ("ipv6: give an IPv6 dev to blackhole_netdev"), we can add dev_hold_track() in macsec_dev_init() and dev_put_track() in macsec_free_netdev() to fix the problem.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.18.3
- Published
- 2025-02-26
Affected versions
From: 5.18
Until: 5.18.3
Fixed in: 5.18.3
How to fix this CVE
Update your Linux kernel to version 5.18.3 or later to patch a use-after-free vulnerability in the MACsec driver that can cause system crashes or memory corruption. Systems running kernel versions 5.18.0 through 5.18.2 should prioritize this update, as the vulnerability affects reference counting when MACsec virtual devices are created without properly holding references to their underlying network interfaces.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r — verify it shows 5.18.3 or later to confirm the fix is applied
- Identify if MACsec is in use: grep -r 'CONFIG_MACSEC' /boot/config-$(uname -r) — look for '=y' to confirm the vulnerable component is compiled
- Search kernel logs for UAF indicators: dmesg | grep -i 'use-after-free\|kasan\|macsec_get_iflink' — look for stack traces related to MACsec operations
- Verify fix installation: modinfo macsec 2>/dev/null | grep -i version — confirm the loaded module is from kernel 5.18.3 or later
FAQ
What is CVE-2022-49390?
CVE-2022-49390 is a use-after-free memory safety bug in the Linux kernel's MACsec driver that occurs when creating a new MACsec virtual network device without acquiring a reference to the underlying real network device, allowing it to be freed prematurely and causing kernel crashes or undefined behavior.
Is CVE-2022-49390 being actively exploited?
No, CVE-2022-49390 is not listed on the CISA Known Exploited Vulnerabilities catalog and has no publicly available exploits, though it represents a real kernel stability risk for systems using MACsec.
What versions of Kernel are affected by CVE-2022-49390?
Linux kernel versions 5.18.0 through 5.18.2 are affected. Version 5.18.3 and all later versions include the fix.
How do I check if my server is vulnerable to CVE-2022-49390?
Run 'uname -r' and check if the output shows a version between 5.18.0 and 5.18.2, then verify MACsec is enabled with 'grep CONFIG_MACSEC /boot/config-$(uname -r)' — if it shows '=y' and your kernel is in the vulnerable range, you are affected.
Does Defensia detect CVE-2022-49390?
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-49390 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-49390. Free for 1 server.
Get started free