{"id":"CVE-2026-74480","state":"PUBLISHED","title":"net: bridge: stop fast-leave after deleting a port group","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: stop fast-leave after deleting a port group\n\nbr_multicast_leave_group() iterates mp->ports with pp = &p->next in\nits fast-leave path. After br_multicast_del_pg() removes p,\ncontinuing the loop advances pp through the deleted entry.\n\nIf multicast-to-unicast was enabled, the bridge can hold multiple port\ngroups for the same port and group with different source MAC\naddresses. Once multicast-to-unicast is disabled,\nbr_port_group_equal() matches those entries by port only. A fast leave\ncan then delete one entry and continue from its stale next pointer,\nleaving mp->ports pointing at a deleted port group.\n\nFast leave only needs to remove one matching port group. Break after\nbr_multicast_del_pg() so the loop stops before dereferencing the\nremoved entry.","publishedAt":"2026-08-15T12:27:13.803Z","updatedAt":"2026-10-16T19:05:48.808Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"d6c32e2e25a9a06ba021030e26b6d602a277eb72","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"482bcb85139addb4e8ac8ed10baeda3e0aad4031","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"1a109cc9890d017c41d77e6c82da739579c49f0b","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"159ad90cb929c033308bb39a2c5f8fbf393b77aa","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"4695430e8132420bf8de94da3eb36a6cf35fde6b","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"0309ebbc570000ea0df11c06b69798e5860c5f6f","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"a39789f211b8a4125f0c70e05b30cf715f4f187d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bridge/br_multicast.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.11","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bridge/br_multicast.c"]}],"references":["https://git.kernel.org/stable/c/d6c32e2e25a9a06ba021030e26b6d602a277eb72","https://git.kernel.org/stable/c/482bcb85139addb4e8ac8ed10baeda3e0aad4031","https://git.kernel.org/stable/c/1a109cc9890d017c41d77e6c82da739579c49f0b","https://git.kernel.org/stable/c/159ad90cb929c033308bb39a2c5f8fbf393b77aa","https://git.kernel.org/stable/c/4695430e8132420bf8de94da3eb36a6cf35fde6b","https://git.kernel.org/stable/c/0309ebbc570000ea0df11c06b69798e5860c5f6f","https://git.kernel.org/stable/c/4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4","https://git.kernel.org/stable/c/a39789f211b8a4125f0c70e05b30cf715f4f187d"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74480.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74480","state":"PUBLISHED","datePublished":"2026-08-15T12:27:13.803Z","dateUpdated":"2026-10-16T19:05:48.808Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.904Z"},"containers":{"cna":{"title":"net: bridge: stop fast-leave after deleting a port group","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: stop fast-leave after deleting a port group\n\nbr_multicast_leave_group() iterates mp->ports with pp = &p->next in\nits fast-leave path. After br_multicast_del_pg() removes p,\ncontinuing the loop advances pp through the deleted entry.\n\nIf multicast-to-unicast was enabled, the bridge can hold multiple port\ngroups for the same port and group with different source MAC\naddresses. Once multicast-to-unicast is disabled,\nbr_port_group_equal() matches those entries by port only. A fast leave\ncan then delete one entry and continue from its stale next pointer,\nleaving mp->ports pointing at a deleted port group.\n\nFast leave only needs to remove one matching port group. Break after\nbr_multicast_del_pg() so the loop stops before dereferencing the\nremoved entry."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"d6c32e2e25a9a06ba021030e26b6d602a277eb72","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"482bcb85139addb4e8ac8ed10baeda3e0aad4031","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"1a109cc9890d017c41d77e6c82da739579c49f0b","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"159ad90cb929c033308bb39a2c5f8fbf393b77aa","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"4695430e8132420bf8de94da3eb36a6cf35fde6b","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"0309ebbc570000ea0df11c06b69798e5860c5f6f","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4","versionType":"git"},{"version":"6db6f0eae6052b70885562e1733896647ec1d807","status":"affected","lessThan":"a39789f211b8a4125f0c70e05b30cf715f4f187d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bridge/br_multicast.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.11","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bridge/br_multicast.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d6c32e2e25a9a06ba021030e26b6d602a277eb72"},{"url":"https://git.kernel.org/stable/c/482bcb85139addb4e8ac8ed10baeda3e0aad4031"},{"url":"https://git.kernel.org/stable/c/1a109cc9890d017c41d77e6c82da739579c49f0b"},{"url":"https://git.kernel.org/stable/c/159ad90cb929c033308bb39a2c5f8fbf393b77aa"},{"url":"https://git.kernel.org/stable/c/4695430e8132420bf8de94da3eb36a6cf35fde6b"},{"url":"https://git.kernel.org/stable/c/0309ebbc570000ea0df11c06b69798e5860c5f6f"},{"url":"https://git.kernel.org/stable/c/4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4"},{"url":"https://git.kernel.org/stable/c/a39789f211b8a4125f0c70e05b30cf715f4f187d"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The bug is reached when the bridge network stack processes attacker-supplied IGMP/MLD Leave packets received on a bridge port (br_handle_frame_finish -> br_multicast_rcv -> br_ip4/ip6_multicast_leave_group -> br_multicast_leave_group), requiring no local syscall access.\nAC:L - Once a bridge has IGMP snooping, fast-leave, and leftover duplicate port groups (common on WiFi APs that used multicast-to-unicast), an attacker can reliably trigger the bug by sending IGMP/MLD joins then a Leave; no uncontrollable race or rare timing is required.\nPR:N - No privileges or authentication are required on the target; any host on an attached bridge port can inject IGMP/MLD Leave packets that are processed and reach the vulnerable fast-leave deletion loop.\nUI:N - Exploitation requires only attacker-sent multicast control packets; no victim user action such as opening files, clicking links, or mounting filesystems is needed.\nS:U - Impact is kernel heap corruption and use-after-free within the bridge/multicast subsystem on the same host; it does not cross a VM/hypervisor or IOMMU security boundary by itself.\nC:H - Deleting a port group then continuing the list walk dereferences freed net_bridge_port_group memory and can leave mp->ports dangling, giving a use-after-free read primitive exploitable for arbitrary kernel memory disclosure.\nI:H - Corrupting the mp->ports linked list via stale next pointers after br_multicast_del_pg() enables attacker-influenced kernel heap corruption that can be developed into arbitrary write and privilege escalation.\nA:H - The use-after-free and corrupted multicast database pointers cause kernel oops/panics when subsequent bridge multicast forwarding or MDB operations traverse the broken port-group list, enabling repeatable denial of service."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:37:33.031Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.6.151"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.12.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.18.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74480","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T18:57:40.918598Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:05:48.808Z"}}]}}}