CVE-2021-47309·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net: validate lwtstate->data before returning from skb_tunnel_info() skb_tunnel_info() returns pointer of lwtstate->data as ip_tunnel_info type without validation. lwtstate->data can have various types such as mpls_iptunnel_encap, etc and these are not compatible. So skb_tunnel_info() should validate before returning that pointer. Splat looks like: BUG: KASAN: slab-out-of-bounds in vxlan_get_route+0x418/0x4b0 [vxlan] Read of size 2 at addr ffff888106ec2698 by task ping/811 CPU: 1 PID: 811 Comm: ping Not tainted 5.13.0+ #1195 Call Trace: dump_stack_lvl+0x56/0x7b print_address_description.constprop.8.cold.13+0x13/0x2ee ? vxlan_get_route+0x418/0x4b0 [vxlan] ? vxlan_get_route+0x418/0x4b0 [vxlan] kasan_report.cold.14+0x83/0xdf ? vxlan_get_route+0x418/0x4b0 [vxlan] vxlan_get_route+0x418/0x4b0 [vxlan] [ ... ] vxlan_xmit_one+0x148b/0x32b0 [vxlan] [ ... ] vxlan_xmit+0x25c5/0x4780 [vxlan] [ ... ] dev_hard_start_xmit+0x1ae/0x6e0 __dev_queue_xmit+0x1f39/0x31a0 [ ... ] neigh_xmit+0x2f9/0x940 mpls_xmit+0x911/0x1600 [mpls_iptunnel] lwtunnel_xmit+0x18f/0x450 ip_finish_output2+0x867/0x2040 [ ... ]
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.13.5
- Published
- 2024-05-21
Affected versions
From: 5.11
Until: 5.13.5
Fixed in: 5.13.5
How to fix this CVE
Update your Linux kernel to version 5.13.5 or later to patch the lwtstate data validation flaw. This vulnerability allows out-of-bounds memory reads when tunnel information is not properly validated, potentially leading to information disclosure or system crashes. Apply the kernel update through your distribution's package manager and reboot your system.
sudo dnf upgrade kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with 'uname -r' and compare against the affected range (5.11.x through 5.13.4)
- Step 2: Verify if VXLAN or MPLS tunnel modules are loaded with 'lsmod | grep -E "vxlan|mpls_iptunnel"' — if present, the vulnerable code path may be active
- Step 3: Search kernel logs for memory corruption or KASAN reports with 'dmesg | grep -i "kasan\|slab-out-of-bounds" | grep -i "vxlan_get_route"'
- Step 4: After updating, confirm the new kernel version with 'uname -r' and verify it is 5.13.5 or later
FAQ
What is CVE-2021-47309?
This vulnerability is a memory validation flaw in the Linux kernel's tunnel information handling. The skb_tunnel_info() function returns a pointer to tunnel data without checking its actual type, which can lead to reading uninitialized or incompatible memory when MPLS or other tunnel encapsulations are mixed with VXLAN operations.
Is CVE-2021-47309 being actively exploited?
No, CVE-2021-47309 is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are currently available. However, the vulnerability is trivial to trigger in environments using both MPLS and VXLAN tunneling.
What versions of Kernel are affected by CVE-2021-47309?
Linux kernel versions from 5.11.x through 5.13.4 are affected. Version 5.13.5 and all later versions contain the fix.
How do I check if my server is vulnerable to CVE-2021-47309?
Run 'uname -r' to display your kernel version. If it reports a version between 5.11 and 5.13.4 (inclusive), your system is vulnerable. Additionally, check 'lsmod | grep vxlan' to see if the VXLAN module is loaded.
Does Defensia detect CVE-2021-47309?
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-2021-47309 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/2179d96ec702cc33ead02a9ce40ece599b8538c5
- https://git.kernel.org/stable/c/67a9c94317402b826fc3db32afc8f39336803d97
- https://git.kernel.org/stable/c/83bdcfbd968bcc91a0632b7b625e4a9b0cba5e0d
- https://git.kernel.org/stable/c/8aa13a86964cdec4fd969ef677c6614ff068641a
- https://git.kernel.org/stable/c/8bb1589c89e61e3b182dd546f1021928ebb5c2a6
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47309. Free for 1 server.
Get started free