Description
In the Linux kernel, the following vulnerability has been resolved: net: bridge: mst: move switchdev call outside rcu This is a follow-up of one of sashiko's pre-existing bug reports. br_mst_set_state() calls switchdev_port_attr_set() for nonzero MSTIs while holding rcu_read_lock() which invokes the blocking switchdev notifier chain and may sleep. Nonzero MSTI changes come from netlink with rtnl held. Move the switchdev call before entering the rcu section and assert that rtnl is held. The call cannot be deferred because netlink needs its error and extack. Also DSA reads the old bridge MST state during the callback and checks it. A deferred callback will be late and will see the updated state.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8ca9a750fc711911ef616ceb627d07357b04545e to < b9661fd2423fc25e91e0517ecc0b6156ad83e3a8affected4488617e5e995a09abe4d81add5fb165674edb59 to < 6b431b63219853eef4054e2f1cb073d2ca2059b4affected3a7c1661ae1383364cd6092d851f5e5da64d476b to < abf734d150c61acfdfee102169d0e5d1c482e285affected3a7c1661ae1383364cd6092d851f5e5da64d476b to < d5c4ee1fa4e83a12afc051c831936cd8e006cde3affected3a7c1661ae1383364cd6092d851f5e5da64d476b to < c40ed3e884c8dc0350f26484030438ef24208ff1affected3a7c1661ae1383364cd6092d851f5e5da64d476b to < 18a6fe05fb6e18de29fa90d388bb34044114b3d8affecteda2b01e65d9ba8af2bb086d3b7288ca53a07249acaffectede43dd2b1ec746e105b7db5f9ad6ef14685a615a4affected6.1.93 to < 6.1.189affected6.6.33 to < 6.6.158affected6.8.12 to < 6.9affected6.9.3 to < 6.10affected
Linux Linux
Default version status: affected
6.10affected0 to < 6.10unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b9661fd2423fc25e91e0517ecc0b6156ad83e3a8 ↗
- https://git.kernel.org/stable/c/6b431b63219853eef4054e2f1cb073d2ca2059b4 ↗
- https://git.kernel.org/stable/c/abf734d150c61acfdfee102169d0e5d1c482e285 ↗
- https://git.kernel.org/stable/c/d5c4ee1fa4e83a12afc051c831936cd8e006cde3 ↗
- https://git.kernel.org/stable/c/c40ed3e884c8dc0350f26484030438ef24208ff1 ↗
- https://git.kernel.org/stable/c/18a6fe05fb6e18de29fa90d388bb34044114b3d8 ↗