net: bridge: use option bits for CFM/MRP frame handlers
- 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.6.160, 6.12.112, 6.18.53, 7.2.7
- 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: use option bits for CFM/MRP frame handlers CFM and MRP register a global br_frame_type whose hlist_node is linked into the per-bridge frame_type_list when the first MEP/MRP instance is created. Enabling the protocol on multiple bridges therefore inserts the same node into multiple lists. Unregistering it on one bridge then corrupts list state belonging to another. These handlers can only be installed once per bridge, and they are uncommon. Track their per-bridge enable state with net_bridge option bits, which already live on the Rx hot cache line, and dispatch the matching handler directly from the receive path. Check both bits together first as an unlikely case. Remove the generic frame_type_list and br_frame_type helpers, which have had no other users since CFM and MRP were added. That shrinks struct net_bridge by 8 bytes and drops the list walk from the fast path. When neither protocol is compiled in, BR_CFM_MRP_OPTS is 0 and the compiler prunes the branch.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 90c628dd47ff4178f645b34938470bf43d02d123 · fixed in 260f99b355a44f6ce67971ebc9223b22c8f93957; From 90c628dd47ff4178f645b34938470bf43d02d123 · fixed in be5ead6552418d70df3a76b962ccd6ed78a31fb5; From 90c628dd47ff4178f645b34938470bf43d02d123 · fixed in 994fd705ca498223d188024cde833739a9dddbd2; From 90c628dd47ff4178f645b34938470bf43d02d123 · fixed in 42e033c8f30fd2923ccac3373ae70797e521dae1; From 90c628dd47ff4178f645b34938470bf43d02d123 · fixed in 7a49e6b16f36b8e085521699adbca3e321b6dd0c
- Linux Linux
5.11
- KernelLinux
From 5.11.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7