net: bridge: stop fast-leave after deleting a port group
- 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.265, 5.15.216, 6.1.183, 6.6.151, 6.12.103, 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: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: net: bridge: stop fast-leave after deleting a port group br_multicast_leave_group() iterates mp->ports with pp = &p->next in its fast-leave path. After br_multicast_del_pg() removes p, continuing the loop advances pp through the deleted entry. If multicast-to-unicast was enabled, the bridge can hold multiple port groups for the same port and group with different source MAC addresses. Once multicast-to-unicast is disabled, br_port_group_equal() matches those entries by port only. A fast leave can then delete one entry and continue from its stale next pointer, leaving mp->ports pointing at a deleted port group. Fast leave only needs to remove one matching port group. Break after br_multicast_del_pg() so the loop stops before dereferencing the removed entry.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in d6c32e2e25a9a06ba021030e26b6d602a277eb72; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 482bcb85139addb4e8ac8ed10baeda3e0aad4031; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 1a109cc9890d017c41d77e6c82da739579c49f0b; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 159ad90cb929c033308bb39a2c5f8fbf393b77aa; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 4695430e8132420bf8de94da3eb36a6cf35fde6b; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 0309ebbc570000ea0df11c06b69798e5860c5f6f; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in 4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4; From 6db6f0eae6052b70885562e1733896647ec1d807 · fixed in a39789f211b8a4125f0c70e05b30cf715f4f187d
- Linux Linux
4.11
- KernelLinux
From 4.11.0 · fixed in 5.10.265; From 5.11.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.151; From 6.7.0 · fixed in 6.12.103; From 6.13.0 · fixed in 6.18.44; From 6.19.0 · fixed in 7.1.8
References 8
git.kernel.org
- stable/c/d6c32e2e25a9a06ba021030e26b6d602a277eb72
- stable/c/482bcb85139addb4e8ac8ed10baeda3e0aad4031
- stable/c/1a109cc9890d017c41d77e6c82da739579c49f0b
- stable/c/159ad90cb929c033308bb39a2c5f8fbf393b77aa
- stable/c/4695430e8132420bf8de94da3eb36a6cf35fde6b
- stable/c/0309ebbc570000ea0df11c06b69798e5860c5f6f
- stable/c/4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4
- stable/c/a39789f211b8a4125f0c70e05b30cf715f4f187d