Odebrany

CVE-2026-99183

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ę:

accel/rocket: przeszukuje każde gniazdo rdzenia podczas wyszukiwania harmonogramu

sched_to_core() przenosi rdev->cores[] do rdev->num_cores i
rocket_remove() zmniejsza liczbę rdzeni num_core za każdy usunięty rdzeń. Rozwiąż a
rdzeń, który nie jest ostatnim, a rdzenie znajdujące się za nim wypadają poza
search, więc sched_to_core() zwraca NULL dla rdzenia, który jest nadal związany i
nadal pracuje. Żaden rozmówca nie sprawdza wyniku:

rakieta_job_run(): rocket_fence_create(rdzeń), rdzeń->dev
rocket_job_timedout(): dev_err(core->dev, "Upłynął limit czasu zadania NPU")

Odłączenie środkowego rdzenia z trzech na RK3588, gdy jest trzech klientów
dwukrotnie poddając się wszystkim błędom, raz z ocalałego rdzenia
kolejkę zadań i raz z jej resetowania pracy:

KASAN: null-ptr-deref w zakresie [0x0000000000000220-0x0000000000000227]
Kolejka robocza: fdad0000.npu drm_sched_run_job_work [gpu_sched]
szt: rakieta_job_run+0x234/0x838 [rakieta]
Śledzenie połączeń:
rakieta_job_run+0x234/0x838 [rakieta]
drm_sched_run_job_work+0x2cc/0xad8 [gpu_sched]
proces_one_work+0x640/0x14f0

KASAN: null-ptr-deref w zakresie [0x0000000000000000-0x0000000000000007]
Kolejka robocza: rocket-reset-2 drm_sched_job_timedout [gpu_sched]
szt: rakieta_job_timedout+0xf0/0x1e0 [rakieta]
Śledzenie połączeń:
rakieta_job_timedout+0xf0/0x1e0 [rakieta]
drm_sched_job_timedout+0x188/0x6a0 [gpu_sched]

Obydwa stanowią trzeci rdzeń: nazwy kolejek roboczych to jego urządzenie i jego
core->index i pozostawiono go na slocie 2, podczas gdy liczba rdzeni num_cores spadła do 2.

Przeszukaj teraz wszystkie przydzielone miejsca w sposób find_core_for_dev().
robi. Następnie zostaje znaleziony rdzeń, który jest nadal związany, i dwaj rozmówcy otrzymują
wskaźnik, który, jak zakładają, już posiadają.

Nie oznacza to jednak, że odłączenie jednego rdzenia z kilku jest bezpieczne. Otwarty klient
utrzymuje jednostkę wskazującą na planistę rdzenia, który odszedł:
drm_sched zgłasza, że nie jest gotowy na każde zadanie, które się na nim pojawi, i
klient czeka w dma_fence_default_wait na ogrodzenie, które nigdy nie zasygnalizuje.
Zatrzymanie dereferencji NULL jest tym, co należy do poprawki; reszta chce
więcej przemyśleń.

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