CVE-2026-103414
WysokieCVSS 8.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
Loader zasobów binarnych GUIX (motywów) rozmiaruje arenę i wypełnia ją w dwóch oddzielnych przebiegach, które przechodzą przez plik zasobu z niezależną arytmetyką kursora. Ponieważ `gx_page_header_data_size` nigdy nie jest walidowany względem danych glifów faktycznie zawartych na stronie, oba przebiegi mogą odczytać różne nagłówki stron dla tej samej strony czcionki, wyliczyć różne liczby glifów i zarezerwować mniej, niż zapisuje przebieg ładujący. Nadmiar jest zapisywany poza końcem areny, z treścią pobraną dosłownie z pliku. Przepełniony bufor jest alokowany przez sam GUIX poprzez `_gx_system_memory_allocator`, a nie dostarczany przez wywołującego. Publiczne API `gx_binres_theme_load()` nie przyjmuje parametru rozmiaru, więc żadna staranność wywołującego nie zapobiega temu. Problem reprodukuje się w domyślnej konfiguracji; `GX_BINARY_RESOURCE_SUPPORT` jest domyślnie włączone.
Ocena ryzyka
Atakujący może dostarczyć spreparowany plik motywu, powodując przepełnienie bufora poza areną, co może prowadzić do uszkodzenia pamięci, awarii lub wykonania kodu. Ryzyko dotyczy systemów używających GUIX z włączonym wsparciem zasobów binarnych.
Rekomendacja
Zaktualizuj GUIX do wersji zawierającej poprawkę walidującą `gx_page_header_data_size` względem danych glifów. Do czasu aktualizacji rozważ wyłączenie `GX_BINARY_RESOURCE_SUPPORT` lub unikanie ładowania niezaufanych motywów.
Inne podatności w GUIX
Oryginalny opis (angielski, źródło NVD)
The GUIX binary resource (theme) loader sizes its arena and populates it in two separate passes that traverse the resource file with independent cursor arithmetic. Because `gx_page_header_data_size` is never validated against the glyph data a page actually contains, the two passes can read different page headers for the same font page, derive different glyph counts, and reserve less than the load pass writes. The excess is written past the end of the arena, with content taken verbatim from the file. The overflowed buffer is allocated by GUIX itself, through `_gx_system_memory_allocator`, rather than supplied by the caller. The public API `gx_binres_theme_load()` takes no size parameter, so no amount of caller diligence prevents this. Reproduces in the shipped default configuration; `GX_BINARY_RESOURCE_SUPPORT` is enabled by default.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

