netfilter: ebtables: terminate table name before find_table_lock()
- 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.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: ebtables: terminate table name before find_table_lock() update_counters() and compat_update_counters() forward a user-supplied 32-byte table name to find_table_lock() without NUL-terminating it. On a lookup miss, find_inlist_lock() calls try_then_request_module(..., "%s%s", "ebtable_", name), and vsnprintf() reads past the name field and the stack object until it hits a zero byte. BUG: KASAN: stack-out-of-bounds in string (lib/vsprintf.c:648 lib/vsprintf.c:730) Read of size 1 at addr ffff8880119dfb20 by task exploit/147 Call Trace: ... string (lib/vsprintf.c:648 lib/vsprintf.c:730) vsnprintf (lib/vsprintf.c:2945) __request_module (kernel/module/kmod.c:150) do_update_counters.isra.0 (net/bridge/netfilter/ebtables.c:371 net/bridge/netfilter/ebtables.c:380) update_counters (net/bridge/netfilter/ebtables.c:1440) do_ebt_set_ctl (net/bridge/netfilter/ebtables.c:2573) nf_setsockopt (net/netfilter/nf_sockopt.c:101) ip_setsockopt (net/ipv4/ip_sockglue.c:1424) raw_setsockopt (net/ipv4/raw.c:847) __sys_setsockopt (net/socket.c:2393) ... compat_do_replace() shares the same unterminated name via compat_copy_ebt_replace_from_user(); terminate it there too so all find_table_lock() callers behave alike. The other callers already terminate the name after the copy.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 4c046ca4e35a83ea32f6e748f54139f5fe2a1d01; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in ab63ccefb9c71627f957a0724c2b9ebc869c6f20; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in c6f539311e58e76aa96feef0f1572b13a564f8a2; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 2664f537ca5bcb2ef3fac2683dcca602e51fad24; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 7436da6c1bc44654b7f11a17e746f6999fd37250; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 6fe8d3cecd20bfaaaf440db3a06ba674d2f2e322; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in b6183b1b88a722b6d8ea0cecc99eba168a15e0be; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in a622d2e9608c9dff47fc2e5759ac7aa3a836b45d
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.96; From 6.13.0 · fixed in 6.18.39; From 6.19.0 · fixed in 7.1.4
References 8
git.kernel.org
- stable/c/4c046ca4e35a83ea32f6e748f54139f5fe2a1d01
- stable/c/ab63ccefb9c71627f957a0724c2b9ebc869c6f20
- stable/c/c6f539311e58e76aa96feef0f1572b13a564f8a2
- stable/c/2664f537ca5bcb2ef3fac2683dcca602e51fad24
- stable/c/7436da6c1bc44654b7f11a17e746f6999fd37250
- stable/c/6fe8d3cecd20bfaaaf440db3a06ba674d2f2e322
- stable/c/b6183b1b88a722b6d8ea0cecc99eba168a15e0be
- stable/c/a622d2e9608c9dff47fc2e5759ac7aa3a836b45d