CVE-2026-17053
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Interfejs API sterownika SMBus ujawnił smbus_smbalert_remove_cb() i smbus_host_notify_remove_cb() jako wywołania systemowe Zephyr. Ich weryfikatorzy w sterownikach/smbus/smbus_handlers.c sprawdzili tylko argument dev z K_SYSCALL_OBJ(dev, K_OBJ_DRIVER_SMBUS) i przekazali dostarczony przez rozmówcę wskaźnik struct smbus_callback *cb do kodu sterownika trybu jądra bez żadnej walidacji K_SYSCALL_MEMORY_READ/K_SYSCALL_MEMORY_WRITE. Z tego powodu towarzysząca zmiana w 2023 r. usunęła już pasujące wywołania systemowe smbus_smbalert_set_cb() / smbus_host_notify_set_cb() , ale dwa wywołania systemowe usuwania pozostały odsłonięte.
W kompilacji z CONFIG_USERSPACE=y, CONFIG_SMBUS=y i sterownikiem realizującym operacje wywołania zwrotnego (drivers/smbus/intel_pch_smbus.c z CONFIG_SMBUS_INTEL_PCH_SMBALERT/CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY lub sterowniki/smbus/smbus_stm32.c z CONFIG_SMBUS_STM32_SMBALERT), każdy wątek trybu użytkownika, któremu przyznano obiekt urządzenia SMBus, może wywoływać te wywołania systemowe z dowolnym wskaźnikiem. Wartość osiąga smbus_callback_remove() w sterownikach/smbus/smbus_utils.h, która wykorzystuje ją jako tożsamość węzła względem sys_slist_t zarejestrowanych wywołań zwrotnych jądra.
Konsekwencją jest to, że nieuprzywilejowany wątek może wyrejestrować wywołanie zwrotne SMBALERT lub Host Notify zarejestrowane przez komponent trybu nadzorcy, co dyskretnie wyłącza obsługę alertów dla reszty systemu; ponieważ obrazy Zephyr mają stałe adresy symboli, a wywołanie systemowe zwraca 0 w przypadku trafienia w porównaniu z -ENOENT w przypadku chybienia, adres docelowy można zarówno wyprowadzić, jak i przeszukać. W kompilacjach z CONFIG_ASSERT=y sprawdzenie __ASSERT(callback->handler, ...) dodatkowo usuwa referencję do adresu dostarczonego przez rozmówcę w trybie nadzorcy, więc fałszywy wskaźnik zgłasza błąd trybu jądra i krytyczny błąd systemu, a wynik błędu/braku błędu ujawnia, które adresy są mapowane.
Poprawka usuwa oba punkty wejścia wywołania systemowego, obniżając obie funkcje do zwykłych statycznych wywołań wbudowanych, dzięki czemu manipulowanie listą wywołań zwrotnych jest dostępne tylko dla kodu w trybie nadzorcy. Nie ma to wpływu na kompilacje bez CONFIG_USERSPACE i nie ma wpływu na konfiguracje, które nie włączają sterownika SMBus z obsługą SMBALERT lub Host Notify.
>_ 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