Wysoki Odebrany

CVE-2026-17052

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

>_ Opis

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

Moduł obsługi weryfikacji wywołań systemowych GPIO uwzględniający czas z_vrfy_tgpio_pin_read_ts_ec() w sterownikach/timeaware_gpio/timeaware_gpio_handlers.c sprawdził tylko obiekt urządzenia portu i przekazał do sterownika dostarczony przez osobę wywołującą znacznik czasu i wskaźniki wyjściowe event_count bez sprawdzania K_SYSCALL_MEMORY_WRITE(). Inne procedury obsługi w tym samym pliku (z_vrfy_tgpio_port_get_time(), z_vrfy_tgpio_port_get_cycles_per_sekunda()) już przeprowadziły tę kontrolę, więc pominięcie pozostawiło jedno wywołanie systemowe bez ochrony.

Funkcja tgpio_pin_read_ts_ec() jest zadeklarowana jako __syscall, więc przy CONFIG_USERSPACE=y nieuprzywilejowany wątek trybu użytkownika, któremu udzielono dostępu do obiektu urządzenia TGPIO, może go wywołać z dowolnymi wartościami wskaźników. tgpio_intel_read_ts_ec() w sterownikach/timeaware_gpio/timeaware_gpio_intel.cbounds-sprawdza tylko indeks pinów, a następnie bezwarunkowo wykonuje znacznik czasu = ... i event_count = ..., wykonując dwa 8-bajtowe zapisy w trybie nadzorcy pod adresami wybranymi przez program wywołujący w trybie użytkownika.

Rezultatem jest operacja podstawowa typu „zapisz gdzie”, która przekracza granicę przestrzeni użytkownika/jądra: adres docelowy jest w pełni wybierany przez atakującego, a przechowywane wartości to sprzętowy zapis czasu i zawartość rejestru licznika zdarzeń. Uszkodzenie w ten sposób struktur danych jądra może spowodować eskalację wątku wywołującego do uprawnień administratora lub spowodować awarię systemu; wymagane uprawnienie do obiektu urządzenia jest wąską możliwością, która nie ma na celu zapewniania żadnego dostępu do pamięci jądra. Poprawka dodaje dwie brakujące walidacje K_SYSCALL_MEMORY_WRITE() przed wywołaniem sterownika.

W praktyce ekspozycja jest niewielka. Tylko kompilacje z CONFIG_USERSPACE=y i CONFIG_TIMEAWARE_GPIO=y kompilują plik, którego dotyczy problem, a począwszy od wersji 3.6.0 plik dodatkowo odwoływał się do przeniesionego nagłówka (<zephyr/syscall_handler.h>) i usuwał makra Z_SYSCALL_*, więc taka konfiguracja nie została zbudowana, dopóki nie zostały one naprawione po wersji 4.4.0. Drzewa znajdujące się niżej, które lokalnie naprawiły to uszkodzenie, oraz kompilacje wersji 3.5.0 tam, gdzie nie istniały, stanowią narażoną populację.

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