Description
In the Linux kernel, the following vulnerability has been resolved: mac802154: hold an interface reference across the scan worker mac802154_scan_worker() captures the scanning sub-interface under RCU and then keeps dereferencing sdata->dev after rcu_read_unlock() and outside the rtnl -- in the failure traces, in mac802154_transmit_beacon_req() (skb->dev = sdata->dev), and in the end_scan cleanup. Nothing keeps that netdev alive across the worker iteration. A concurrent DEL_INTERFACE or PHY removal can unregister the interface once the worker drops the rtnl between its two drv_set_channel() sections. unregister_netdevice() frees the netdev asynchronously from netdev_run_todo() with the rtnl already dropped, so neither holding the rtnl nor the per-PHY IEEE802154_IS_SCANNING flag prevents a stale worker iteration from dereferencing the freed netdev -- a KASAN slab-use-after-free, reachable by racing TRIGGER_SCAN against DEL_INTERFACE (both CAP_NET_ADMIN). Pin the netdev with netdev_hold() while the RCU read lock is still held, and release it at every worker exit.
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
57588c71177f0bfc08509c2c3a9bfe32850c0786 to < bd7110f0caa32426140ff302a209c53294ef2cfdaffected57588c71177f0bfc08509c2c3a9bfe32850c0786 to < dd4754194a706163294b6141460101b99082c8c7affected57588c71177f0bfc08509c2c3a9bfe32850c0786 to < 59c1d5463b7bc5a2cdaae27108d1dfd67edc7d1baffected57588c71177f0bfc08509c2c3a9bfe32850c0786 to < 5f303f622f6bb8907c405e5123a0ab0f70fb0065affected57588c71177f0bfc08509c2c3a9bfe32850c0786 to < 234e5e898b713bc0b3a631b6f002897f43d046c8affected
Linux Linux
Default version status: affected
6.3affected0 to < 6.3unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/bd7110f0caa32426140ff302a209c53294ef2cfd ↗
- https://git.kernel.org/stable/c/dd4754194a706163294b6141460101b99082c8c7 ↗
- https://git.kernel.org/stable/c/59c1d5463b7bc5a2cdaae27108d1dfd67edc7d1b ↗
- https://git.kernel.org/stable/c/5f303f622f6bb8907c405e5123a0ab0f70fb0065 ↗
- https://git.kernel.org/stable/c/234e5e898b713bc0b3a631b6f002897f43d046c8 ↗