net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.253, 5.15.203, 6.1.167, 6.6.130, 6.12.77, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled When booting with the 'ipv6.disable=1' parameter, the nd_tbl is never initialized because inet6_init() exits before ndisc_init() is called which initializes it. If an IPv6 packet is injected into the interface, route_shortcircuit() is called and a NULL pointer dereference happens on neigh_lookup(). BUG: kernel NULL pointer dereference, address: 0000000000000380 Oops: Oops: 0000 [#1] SMP NOPTI [...] RIP: 0010:neigh_lookup+0x20/0x270 [...] Call Trace: <TASK> vxlan_xmit+0x638/0x1ef0 [vxlan] dev_hard_start_xmit+0x9e/0x2e0 __dev_queue_xmit+0xbee/0x14e0 packet_sendmsg+0x116f/0x1930 __sys_sendto+0x1f5/0x200 __x64_sys_sendto+0x24/0x30 do_syscall_64+0x12f/0x1590 entry_SYSCALL_64_after_hwframe+0x76/0x7e Fix this by adding an early check on route_shortcircuit() when protocol is ETH_P_IPV6. Note that ipv6_mod_enabled() cannot be used here because VXLAN can be built-in even when IPv6 is built as a module.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in 649e2bb74da54c96cf20729001e283626a2fefa0; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in dc3e62cf3bbf66280a907ec379f373d0c3b8b2bc; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in b5190fcd75a1f1785c766a8d1e44d3938e168f45; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in 5f93e6b4d12bd3a4517a6d447ea675f448f21434; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in f0373e9317bc904e7bdb123d3106fe4f3cea2fb7; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in fbbd2118982c55fb9b0a753ae0cf7194e77149fb; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in abcd48ecdeb2e12eccb8339a35534c757782afcd; From e15a00aafa4b7953ad717d3cb1ad7acf4ff76945 · fixed in 168ff39e4758897d2eee4756977d036d52884c7e
- Linux Linux
3.12
- KernelLinux
From 3.12.0 · fixed in 5.10.253; From 5.11.0 · fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.77; From 6.13.0 · fixed in 6.18.17; From 6.19.0 · fixed in 6.19.7
References 8
git.kernel.org
- stable/c/649e2bb74da54c96cf20729001e283626a2fefa0
- stable/c/dc3e62cf3bbf66280a907ec379f373d0c3b8b2bc
- stable/c/b5190fcd75a1f1785c766a8d1e44d3938e168f45
- stable/c/5f93e6b4d12bd3a4517a6d447ea675f448f21434
- stable/c/f0373e9317bc904e7bdb123d3106fe4f3cea2fb7
- stable/c/fbbd2118982c55fb9b0a753ae0cf7194e77149fb
- stable/c/abcd48ecdeb2e12eccb8339a35534c757782afcd
- stable/c/168ff39e4758897d2eee4756977d036d52884c7e