Odebrany

CVE-2026-99252

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/mpscq: wyłącz wywłaszczanie podczas wypychania

Naciśnięcie powoduje, że węzeł staje się nowym ogonem, a następnie łączy go z poprzednikiem.
Pomiędzy kolejka nie jest pusta, ale funkcja mpscq_pop() nie może dostać się do węzła.
Konsumenci radzą sobie z tym, próbując ponownie, używając funkcji cond_resched().
pętlę, aby dać uprzedzonemu producentowi szansę na zakończenie.

cond_resched() nie robi tego, jeśli konsument ma wyższy priorytet niż
producent i obaj muszą używać tego samego procesora:

producent (SCHED_OTHER) konsument (SCHED_FIFO), ten sam procesor
io_req_local_work_add()
mpscq_push()
prev = xchg(&q->tail, węzeł)
<wywłaszczony> io_cqring_wait()
__io_run_local_work()
znowu:
cond_resched() // nic do zrobienia
mpscq_pop() // NULL
// praca w toku, brak jeszcze wydarzeń
muszę znowu

Producentem może być dowolne zadanie, które może kolejkować task_work dla
ring: pracownik io-wq lub ktoś, kto wysyła wiadomość
IORING_OP_MSG_RING. Konsument kręci się, przytrzymując ->uring_lock, aż
planista lituje się nad uczciwą klasą, co zajmuje około sekundy
domyślnych ustawień serwera sprawiedliwego i na zawsze bez niego. The
pętle w tctx_task_work_run() i io_cancel_local_task_work() mają
ten sam problem.

Nie zezwalaj na wywłaszczanie między tymi dwoma krokami. To ogranicza czas
okno jest otwarte na procesorze producenta, pokazujące, jakie przerwania są wykonywane, oraz a
konsument, który na to czeka, znajduje się na innym procesorze. Koszt to A
para preempt_disable()/preempt_enable() na naciśnięcie.

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