High · published May 21, 2024
In the Linux kernel, the following vulnerability has been resolved:
udp: fix race between close() and udp_abort()
Kaustubh reported and diagnosed a panic in udp_lib_lookup().
The root cause is udp_abort() racing with close(). Both
racing functions acquire the socket lock, but udp{v6}_destroy_sock()
release it before performing destructive actions.
We can't easily extend the socket lock scope to avoid the race,
instead use the SOCK_DEAD flag to prevent udp_abort from doing
any action when the critical race happens.
Diagnosed-and-tested-by: Kaustubh Pandey <[email protected]>
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.9, < 4.9.274 | 4.9.274 |
| linux/linux_kernel | ≥ 4.10, < 4.14.238 | 4.14.238 |
| linux/linux_kernel | ≥ 4.15, < 4.19.196 | 4.19.196 |
| linux/linux_kernel | ≥ 4.20, < 5.4.128 | 5.4.128 |
| linux/linux_kernel | ≥ 5.5, < 5.10.46 | 5.10.46 |
| linux/linux_kernel | ≥ 5.11, < 5.12.13 | 5.12.13 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |