CVE-2026-99268 in Linux
Sumário
de VulDB • 03/11/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
io_uring: acordar os pollers de anel para local task_work
Com IORING_SETUP_DEFER_TASKRUN, as conclusões são enfileiradas como trabalho local e só se tornam CQEs quando o submissor entra no kernel para aguardar eventos. Para um aplicativo que descobre via poll() ou epoll no fd do anel quando é hora de fazer isso, io_uring_poll() relata EPOLLIN se houver trabalho local pendente.
Isso apenas ajuda se o trabalho estiver presente no momento da chamada. Quando DEFER_TASKRUN foi adicionado, io_req_local_work_add() fazia io_cqring_wake(), que cuidava das tarefas dormindo em poll() também. Então a polling recebeu sua própria fila de espera, ->poll_wq, e o despertar em io_req_local_work_add() foi substituído por acordar o submissor diretamente. Desde então, ->poll_wq é acordado apenas quando os CQEs são comprometidos, que para tal anel é feito pela própria tarefa que está esperando ser informada:
submissor conclusão poll(ring_fd) io_uring_poll() // nada ainda schedule() io_req_local_work_add() // ->cq_wait_nr: ninguém espera // dorme em
Acordar ->poll_wq quando a primeira entrada é colocada na lista de trabalho. Como para o eventfd, isso não deve ser feito imediatamente se o trabalho for enfileirado a partir de um manipulador de despertar, pois a cadeia de despertares poderia retornar à fila de espera cuja trava está sendo mantida. Use uma callback RCU nesse caso, com uma referência ao anel.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.