Description
In the Linux kernel, the following vulnerability has been resolved: batman-adv: fix tp_meter counter underflow during shutdown batadv_tp_sender_shutdown() unconditionally decrements the "sending" atomic counter. If multiple paths (e.g. timeout, user cancel, and normal finish) call this function, the counter can underflow to -1. Since the sender logic treats any non-zero value as "still sending", a negative value causes the sender kthread to loop indefinitely. This leads to a use-after-free when the interface is removed while the zombie thread is still active. Fix this by using atomic_xchg() to ensure the counter only transitions from 1 to 0 once. [sven: added missing change in batadv_tp_send]
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
33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < e75e2ab463b5b34df6b98f94d740aff327ce9f6baffected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < abae88fa254f2981d39ac003a7b302528a22af64affected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < c66d20a3ff095e3f000551d208ec2606616db15caffected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < c1bac194733aabd731aafa6a01350c229e187dbaaffected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < 01cefc5923889e29dbb5f281c3d457714ceb9c00affected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < 90ae3eae06b7b8ab9f6250b9497c860915b4c17baffected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < aeae11c5dad9cd0d50723890bdd866f8e6db2e7daffected33a3bb4a3345bb511f9c69c913da95d4693e2a4e to < 94f3b133168d1c49895e7cc6afbcf1cc0b354602affected
Linux Linux
Default version status: affected
4.8affected0 to < 4.8unaffected5.10.258 to ≤ 5.10.*unaffected5.15.209 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.142 to ≤ 6.6.*unaffected6.12.92 to ≤ 6.12.*unaffected6.18.34 to ≤ 6.18.*unaffected7.0.11 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e75e2ab463b5b34df6b98f94d740aff327ce9f6b ↗
- https://git.kernel.org/stable/c/abae88fa254f2981d39ac003a7b302528a22af64 ↗
- https://git.kernel.org/stable/c/c66d20a3ff095e3f000551d208ec2606616db15c ↗
- https://git.kernel.org/stable/c/c1bac194733aabd731aafa6a01350c229e187dba ↗
- https://git.kernel.org/stable/c/01cefc5923889e29dbb5f281c3d457714ceb9c00 ↗
- https://git.kernel.org/stable/c/90ae3eae06b7b8ab9f6250b9497c860915b4c17b ↗
- https://git.kernel.org/stable/c/aeae11c5dad9cd0d50723890bdd866f8e6db2e7d ↗
- https://git.kernel.org/stable/c/94f3b133168d1c49895e7cc6afbcf1cc0b354602 ↗