Odebrany

CVE-2026-99255

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

io_uring/io-wq: nie ukrywaj linku przed anulowaniem

Zadanie, które zakończy działanie, anuluje śledzone żądania i czeka, aż tak się stanie
zniknął. io_uring_cancel_generic() wyszukuje wszędzie, gdzie może pojawić się żądanie, i
idzie spać, jeśli nie znajdzie nic do anulowania. Budzi się za każdym razem
jedno z żądań zadania zostało zakończone pracą zadaniową lub zwolnione.

Kiedy io-wq zakończy działanie z żądaniem zawierającym łącze, następuje moment, w którym
nie można znaleźć kolejnego żądania linku:

io_worker_handle_work()
io_sign_current_work(pracownik, NULL)
io_wq_free_work(praca)
io_req_find_next() // usuwa link z żądania
io_free_req() // praca nad zadaniem
io_sign_current_work(pracownik, połączony)
io_run_task_work()
cond_resched()
pracownik->cur_work = połączony

Nie jest w toku, nie jest to bieżące dzieło pracownika i nie jest
jeszcze na liście, na której ma zostać zaparkowany. Jeśli przepustka ta
stwierdza, że zakończenie zadania z powodu io_free_req() przypada na ten czas
nic i zadanie idzie spać. Następnie pracownik uruchamia łącze, które
IO_WQ_BIT_EXIT nie zapobiega pracy ograniczonej. Jeśli to parkuje żądanie
nic nie jest ukończone ani zwolnione i nikt nie budzi zadania. Jeśli jest to
proces, który go kończy, nie może już zostać zabity.

NIE, IOSQE_ASYNC | IOSQE_IO_LINK
FUTEX_WAIT, FUTEX2_PRIVATE
wyjście z wątku lub procesu do 63 lat później

Przy czterech z nich na rundę zawiesza się od 5 do 8 z 10 000 rund (4 procesory, KVM):

io_uring_cancel_generic
zrób_wyjście

Zatwierdzenie f8b632e89a10 („io_uring: zaostrz anulowanie zakończenia zadania”) wynosi około
tę samą lukę i sprawia, że zadanie ponownie szuka tego, co wydarzyło się wcześniej
io_free_req().

Uwolnij żądanie, gdy link będzie bieżącym dziełem pracownika, lub
w toku. Ktokolwiek się tym obudzi, może znaleźć łącze, dopóki nie zostanie zaparkowane
gdzie również wyglądają odwołania. Aby to zrobić, podziel io_wq_free_work() na dwie części.

>_ 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