Katalog CVE

CVE-2026-103414

WysokieCVSS 8.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

Percentyl 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