netfilter: ebtables: fix table blob use-after-free
- 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 3.3, 3.5, 3.11, 3.13, 3.15, and 4 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: ebtables: fix table blob use-after-free We are not allowed to return an error at this point. Looking at the code it looks like ret is always 0 at this point, but its not. t = find_table_lock(net, repl->name, &ret, &ebt_mutex); ... this can return a valid table, with ret != 0. This bug causes update of table->private with the new blob, but then frees the blob right away in the caller. Syzbot report: BUG: KASAN: vmalloc-out-of-bounds in __ebt_unregister_table+0xc00/0xcd0 net/bridge/netfilter/ebtables.c:1168 Read of size 4 at addr ffffc90005425000 by task kworker/u4:4/74 Workqueue: netns cleanup_net Call Trace: kasan_report+0xbf/0x1f0 mm/kasan/report.c:517 __ebt_unregister_table+0xc00/0xcd0 net/bridge/netfilter/ebtables.c:1168 ebt_unregister_table+0x35/0x40 net/bridge/netfilter/ebtables.c:1372 ops_exit_list+0xb0/0x170 net/core/net_namespace.c:169 cleanup_net+0x4ee/0xb10 net/core/net_namespace.c:613 ... ip(6)tables appears to be ok (ret should be 0 at this point) but make this more obvious.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From c58dd2dd443c26d856a168db108a0cd11c285bf3 · fixed in 9060abce3305ab2354c892c09d5689df51486df5; From c58dd2dd443c26d856a168db108a0cd11c285bf3 · fixed in dbb3cbbf03b3c52cb390fabec357f1e4638004f5; From c58dd2dd443c26d856a168db108a0cd11c285bf3 · fixed in 3dd6ac973351308d4117eda32298a9f1d68764fd; From c58dd2dd443c26d856a168db108a0cd11c285bf3 · fixed in cda0e0243bd3c04008fcd37a46b0269fb3c49249; From c58dd2dd443c26d856a168db108a0cd11c285bf3 · fixed in e58a171d35e32e6e8c37cfe0e8a94406732a331f; From 3.2.60 · fixed in 3.3; From 3.4.91 · fixed in 3.5; From 3.10.41 · fixed in 3.11; From 3.12.21 · fixed in 3.13; From 3.14.5 · fixed in 3.15
- Linux Linux
3.15
- KernelLinux
From 3.15.0 · fixed in 5.10.173; From 5.11.0 · fixed in 5.15.100; From 5.16.0 · fixed in 6.1.18; From 6.2.0 · fixed in 6.2.5