CVE-2026-99253
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
io_uring/cancel: uzbroić pracę lokalną, obudzić się przed snem
io_uring_try_cancel_requests() ustawia ->cq_wait_nr na 1, aby następny
io_req_local_work_add() budzi zadanie anulowania. Dodatek, który zajmuje
liczba do zera jest jedyną, która się budzi, później widzą liczbę <= 0 i
wrócić. io_uring_cancel_generic() jednak staje się tylko
TASK_INTERRUPTIBLE znacznie później, więc jedną pobudkę można przeznaczyć na
uruchomione zadanie. Nie ma w tym nic złego, o ile wpis tego dodatku jest nieruchomy
w kolejce, ponieważ sprawdzenie io_local_work_pending() pomija następnie tryb uśpienia. To jest
nie, jeśli dodanie zostało opóźnione po umieszczeniu go w kolejce:
CPU0 (przesłający w exec lub wyjściu) CPU1 (io_req_local_work_add)
mpscq_push(wymaganie A)
io_uring_try_cancel_requests()
io_run_local_work() // uruchamia żądanie A
io_uring_try_cancel_requests()
zestaw_atomowy(&ctx->cq_wait_nr, 1)
atomic_read(&ctx->cq_wait_nr) == 1
liczba wykonanych, wake_up_state()
// zadanie jest uruchomione, brak operacji
przygotuj_do_czekania(TASK_INTERRUPTIBLE)
io_local_work_pending() == fałsz
harmonogram()
mpscq_push(wymaganie B)
cq_wait_nr <= 0, powrót
Tylko zadanie uśpienia może uruchomić żądanie B, więc utknęło w execve() do czasu a
sygnał go budzi. Ekscytujące zadanie nawet tego nie obejmuje.
Uzbroić licznik ponownie po ustawieniu stanu zadania i przed listą zadań
jest zaznaczone, dla pierścieni, których praca lokalna ma zostać uruchomiona.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org