net: bridge: mdb: restart port group walk after deletion
- 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 6.12.112, 6.18.55, 7.2.9
- 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: bridge: mdb: restart port group walk after deletion br_mdb_flush_pgs() keeps a pointer-to-pointer cursor while walking mp->ports. br_multicast_del_pg() can re-enter the same MDB entry through br_multicast_sg_del_exclude_ports() and unlink other port groups. If the cursor points into one of those groups, the next iteration dereferences a stale cursor and can leave mp->ports pointing at freed memory. A following RTM_GETMDB exposes the dangling pointer: BUG: KASAN: slab-use-after-free in br_mdb_dump Read of size 8 br_mdb_dump rtnl_mdb_dump rtnl_dumpit netlink_dump Reset the cursor to mp->ports after every deletion. The deletion removes at least the selected group, so the restarted walk always makes progress.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From a6acb535afb2a3b688a7858f05b61f0433e480d5 · fixed in 46ec55855c972504258c371677ac039ba20e5d12; From a6acb535afb2a3b688a7858f05b61f0433e480d5 · fixed in ab3c4a4c85f2e1e8d04b5c1770dea8412d21c7fe; From a6acb535afb2a3b688a7858f05b61f0433e480d5 · fixed in fe2a42789c12eb7c5d3a42191e2cc735a6c35ead; From a6acb535afb2a3b688a7858f05b61f0433e480d5 · fixed in ab1404ac81154a89fb61ac50ae9a04cd8d4834dc
- Linux Linux
6.8
- KernelLinux
From 6.8.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9