There exists a use-after-free in io_uring in the Linux kernel. Signalfd_poll() and binder_poll() use a waitqueue whose lifetime is the current task. It will send a POLLFREE notification to all waiters before the queue is freed. Unfortunately, the io_uring poll doesn't handle POLLFREE. This allows a use-after-free to occur if a signalfd or binder fd is polled with io_uring poll, and the waitqueue gets freed. We recommend upgrading past commit fc78b2fc21f10c4c9c4d5d659a685710ffa63659
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 5.1 | 5.4.212 |
| linux / linux_kernel | 5.5 | 5.10.141 |
| linux / linux_kernel | 5.11 | 5.15.65 |
| linux / linux_kernel | 5.16 | 5.17 |
| debian / debian_linux | 10.0 | 10.0.x |
| debian / debian_linux | 11.0 | 11.0.x |