Linux: net: bridge: mdb: restart port group walk after deletion
What fixes it
- 46ec55855c972504258c371677ac039ba20e5d12LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 10
- Linuxaffected: a6acb535afb2a3b688a7858f05b61f0433e480d5 before 46ec55855c972504258c371677ac039ba20e5d12CVE List
- Linuxaffected: a6acb535afb2a3b688a7858f05b61f0433e480d5 before ab3c4a4c85f2e1e8d04b5c1770dea8412d21c7feCVE List
- Linuxaffected: a6acb535afb2a3b688a7858f05b61f0433e480d5 before fe2a42789c12eb7c5d3a42191e2cc735a6c35eadCVE List
- Linuxaffected: a6acb535afb2a3b688a7858f05b61f0433e480d5 before ab1404ac81154a89fb61ac50ae9a04cd8d4834dcCVE List
- Linuxaffected: 6.8CVE List
- Linuxunaffected: all versions before 6.8CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 4
- git.kernel.org/stable/c/46ec55855c972504258c371677ac039ba20e5d12Referencevia CVE List
- git.kernel.org/stable/c/ab3c4a4c85f2e1e8d04b5c1770dea8412d21c7feReferencevia CVE List
- git.kernel.org/stable/c/fe2a42789c12eb7c5d3a42191e2cc735a6c35eadReferencevia CVE List
- git.kernel.org/stable/c/ab1404ac81154a89fb61ac50ae9a04cd8d4834dcReferencevia CVE List