Wysoki Oczekuje na analizę

CVE-2026-16511

opublikowano:
modyfikacja:
Ocena CVSS
8.8
Wysoki · v3.1
wektor: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

>_ Opis

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

Dwa weryfikatory wywołań systemowych RTIO, w subsys/rtio/rtio_syscalls.c (subsys/rtio/rtio_handlers.c przed wersją 4.3.0), nie sprawdzały wskaźników dostarczonych przez użytkownika, zanim jądro je zapisało.

z_vrfy_rtio_sqe_cancel() w ogóle nie sprawdzała poprawności. Przekazał wskaźnik wywołującego struct rtio_sqe bezpośrednio do z_impl_rtio_sqe_cancel(), która konwertuje go za pomocą CONTAINER_OF do struktury rtio_iodev_sqe, OR RTIO_SQE_CANCELED (BIT(3)) do swojego 16-bitowego pola flag w trybie nadzorcy, następnie ładuje następny wskaźnik i powtarza tę czynność, aż ten wskaźnik będzie miał wartość NULL. Wywołanie syscall nie przyjmuje argumentu kontekstu RTIO, więc nie potrzebuje przyznania obiektu: dowolny wątek trybu użytkownika w kompilacji CONFIG_USERSPACE może ustawić ten bit w 16-bitowym słowie pod wybranym przez siebie adresem w pamięci jądra, a jądro kontynuuje zapis wzdłuż dowolnego łańcucha wskaźników, który znajdzie przy odpowiednim przesunięciu. Ustawienie wybranych bitów w strukturach danych jądra, takich jak uprawnienia obiektu lub pola stanu wątku, może zostać użyte do eskalacji uprawnień z trybu użytkownika.

z_vrfy_rtio_sqe_copy_in_get_handles() sprawdziła swój kontekst RTIO i wejściową tablicę SQE, ale sprawdziła tylko parametr zewnętrzny uchwytu o wartości NULL przed zapisaniem przez niego wskaźnika SQE jądra, bez sprawdzania K_SYSCALL_MEMORY_WRITE. Wątek użytkownika przechowujący przyznany kontekst RTIO może zatem sprawić, że jądro będzie przechowywać wartość wskaźnika pod dowolnym adresem.

Poprawki sprawdzają, czy parametr zewnętrzny uchwytu jest zapisywalny, powiązują uchwyt anulowania z rzeczywistą pamięcią puli przesyłania i wymagają pozwolenia w kontekście RTIO, który jest właścicielem pasującej puli. Bez tego ostatniego sprawdzenia ograniczony uchwyt nadal pozwala dowolnemu wątkowi użytkownika anulować przesłania należące do innych kontekstów, cicho przerywając ich operacje we/wy. Nie ma to wpływu na systemy zbudowane bez CONFIG_USERSPACE lub CONFIG_RTIO.

>_ Słabości (CWE)

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