ipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump
- 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
- 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: ipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump inet6_dump_fib() saves its progress in cb->args[1] as a positional index within the current hash chain. Between batches, a concurrent fib6_new_table() can insert a new table at the chain head, shifting all existing entries. The saved index then lands on a different table, causing fib6_dump_table() to set w->root to the wrong table while w->node still points into the previous one. fib6_walk_continue() dereferences w->node->parent (NULL) and panics: BUG: kernel NULL pointer dereference, address: 0000000000000008 RIP: 0010:fib6_walk_continue+0x6e/0x170 Call Trace: <TASK> fib6_dump_table.isra.0+0xc5/0x240 inet6_dump_fib+0xf6/0x420 rtnl_dumpit+0x30/0xa0 netlink_dump+0x15b/0x460 netlink_recvmsg+0x1d6/0x2a0 ____sys_recvmsg+0x17a/0x190 Fix by storing tb->tb6_id in cb->args[1] instead of a positional index. On resume, skip entries until the id matches; a concurrent head-insert can never match the saved id, so the walker always resumes on the correct table.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
2.6.19
References 8
git.kernel.org
- stable/c/ee73a32dd258d4af66831ff006b771e19812b322
- stable/c/89f9c5fee3c64c5cabc34e65599308fd3c879cf9
- stable/c/cb90a774a9c6c46961a44949a246fbb61f5f934c
- stable/c/27210d433a8c5fe6bf7278a04bbaeb49a81d0290
- stable/c/059efb48dd746518898faaa9b965511009b59639
- stable/c/d8a01d27873e04bebd357dc87859aa756e0b28b2
- stable/c/110ccbd28c9444866fcc84ba96a2ad64fa6e95ae
- stable/c/9facb861dc6b9b9ea9793ef5032a9a826f7a4229