CVE-2026-82961
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
Podatność w podsystemie GPIO systemu Zephyr polega na braku walidacji argumentu pin przekazywanego przez wątek użytkownika w funkcjach z_vrfy_gpio_pin_configure(), z_vrfy_gpio_pin_get_config() i z_vrfy_gpio_pin_interrupt_configure(). W buildach z CONFIG_USERSPACE=y pozwala to na zapis poza zakresem tablicy w pamięci jądra (m.in. wskaźnika funkcji) oraz odczyty poza zakresem i dostępy MMIO, co może prowadzić do korupcji pamięci jądra, wykonania dowolnego kodu lub awarii.
Ocena ryzyka
Wątek w trybie użytkownika z dostępem do obiektu urządzenia GPIO może wyjść z piaskownicy i uszkodzić pamięć jądra lub wykonać dowolny kod. Ryzyko dotyczy wyłącznie systemów zbudowanych z CONFIG_USERSPACE=y.
Rekomendacja
Zaktualizuj Zephyr do wersji zawierającej poprawkę walidującą pin względem gpio_driver_config.port_pin_mask oraz zakresu GPIO_MAX_PINS_PER_PORT. Jeśli aktualizacja nie jest możliwa, ogranicz przyznawanie wątkom użytkownika dostępu do obiektów urządzeń GPIO.
Powiązane podatności
- CVE-2026-28336Krytyczne
SolarWinds Dameware zawiera podatność na wstrzyknięcie poleceń, która może doprowadzić do przejęcia zdalnie kontrolowanego hosta. Wymagane jest uwierzytelnienie.
- CVE-2026-109593Krytyczne
Nieuwierzytelniony atakujący z dostępem sieciowym do SonicWall GMS 9.5.2 i wcześniejszych może odczytać wewnętrzne pliki GMS, co potencjalnie ujawnia poufne informacje.
- CVE-2026-121260Krytyczne
W oprogramowaniu Ziroom ZHOME A0101 1.0.1.0 Build 202004151405 wykryto lukę w funkcji loadstring w pliku usr/lib/lua/luci/controller/api/zrUsb.lua (komponent Lua Handler). Manipulacja danymi prowadzi do wstrzyknięcia kodu, a atak można przeprowadzić zdalnie. Exploit został opublikowany i może być wykorzystany; producent nie odpowiedział na zgłoszenie.
- CVE-2026-118527ŚrednieAktywnie exploitowane
W Ivanti Connect Secure przed wersjami 25.1.1.3 i 22.8R2.6 występuje użycie przewidywalnych nazw plików. Uwierzytelniony zdalny atakujący może przesłać pliki o kontrolowanej przez siebie treści do znanej lokalizacji na dysku.
- CVE-2026-89292Krytyczne
W Eclipse Mnestix Browser w wersjach od 1.6.0 do 2.3.0 (wyłącznie) nieuwierzytelniony atakujący mógł wykraść klucz MNESTIX_BACKEND_API_KEY dla wszystkich skonfigurowanych infrastruktur.
- CVE-2026-4052Krytyczne
Podatność dotyczy wdrożeń WSO2 Identity Server skonfigurowanego jako Resident Key Manager z udostępnianiem bazy danych. W takim środowisku samodzielnie zarejestrowany użytkownik może uzyskać dostęp do System REST APIs WSO2 API Manager poprzez token z endpointu tokenów WSO2 Identity Server.
- CVE-2026-13594Krytyczne
Wersje 13062 i starsze produktów ManageEngine Log360 oraz EventLog Analyzer firmy Zoho Corporation są podatne na problem umożliwiający przeciwnikowi uzyskanie nieautoryzowanego dostępu do produktu.
- CVE-2026-120534Krytyczne
Wtyczka Advanced Custom Fields: Extended PRO dla WordPressa jest podatna na ograniczoną iniekcję kodu w wersjach do 0.9.2.6 włącznie, poprzez funkcję render_field. Brak wystarczającej walidacji parametrów konfiguracji formularza pozwala nieuwierzytelnionym atakującym na wywoływanie dowolnych funkcji WordPressa z kontrolowanymi argumentami.
- CVE-2026-120518Krytyczne
Wtyczka BuddyPress XProfile Image Field dla WordPressa jest podatna na dowolne usuwanie plików w wersjach do 3.1.0 włącznie. Funkcja bpxp_image_field_update_on_user_activation() wywołuje unlink() na ścieżce zbudowanej z metadanych rejestracji dostarczonych przez odwiedzającego, bez rozwiązywania realpath(), sprawdzenia zawierania w katalogu profilowym i listy dozwolonych rozszerzeń.
- CVE-2026-86596Krytyczne
Wtyczka s2Member dla WordPressa w wersjach do 260927 włącznie jest podatna na zdalne wykonanie kodu poprzez parametr 'item_name'. Niedostateczna sanityzacja w funkcji strip_php_tags_deep() usuwa jedynie literalne sekwencje '<?', a późniejsze czyszczenie placeholderów po interpolacji odtwarza poprawny otwieracz '<?php' już po osadzeniu wartości kontrolowanej przez atakującego w szablonie e-mail.
Oryginalny opis (angielski, źródło NVD)
The GPIO syscall handlers in drivers/gpio/gpio_handlers.c did not validate the pin argument supplied by a user-mode caller. z_vrfy_gpio_pin_configure(), z_vrfy_gpio_pin_get_config() and z_vrfy_gpio_pin_interrupt_configure() verified only the device object (K_SYSCALL_DRIVER_GPIO() / K_SYSCALL_OBJ()) and then passed the caller-supplied gpio_pin_t straight through to z_impl_gpio_pin_*() and on to the driver. The only pin check in include/zephyr/drivers/gpio.h was __ASSERT(gpio_port_pin_is_supported(cfg->port_pin_mask, pin), ...), which compiles to nothing unless CONFIG_ASSERT is enabled, so in a production build no check existed at all. GPIO drivers use pin as a shift count and as an array index on the documented assumption that it is a pin the controller supports. On STM32, for example, gpio_stm32_pin_interrupt_configure() turns pin into an EXTI line and stm32_gpio_intc_set_irq_callback() writes data->cb[line_num].cb and data->cb[line_num].data into a NUM_EXTI_LINES-entry array (default 16) in drivers/interrupt_controller/intc_gpio_stm32.c, guarded only by a compiled-out __ASSERT_NO_MSG(); the same function then reads exti_irq_table[line_num] and calls irq_enable() on the result. Other controllers index fixed-size per-pin configuration tables the same way — drivers/gpio/gpio_ite_it8xxx2_v2.c reads an MMIO base pointer out of wuc_base[8] with the caller's pin and performs a read-modify-write through it. The issue is reachable only in builds with CONFIG_USERSPACE=y (the file is compiled under that symbol), by a user-mode thread that has been granted access to a GPIO device object. Such a grant is intended to authorize control of that port's pins; the missing validation instead lets the thread drive a supervisor-mode out-of-bounds write of a function pointer and an associated void * past a kernel .bss array, and out-of-bounds reads that feed irq_enable() and MMIO accesses — an escape from the user-mode sandbox that can lead to kernel memory corruption, arbitrary code execution, or a crash. The fix validates pin against the controller's gpio_driver_config.port_pin_mask with gpio_port_pin_is_supported() in every pin-taking z_vrfy_ handler and returns -EINVAL otherwise, complemented by an unconditional pin >= GPIO_MAX_PINS_PER_PORT range check added to the shared z_impl_gpio_pin_*() inlines.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

