CVE-2026-92449
ŚrednieCVSS 6.8Streszczenie
Funkcja _gx_binres_pixelmap_table_load() w loaderze zasobów binarnych GUIX indeksuje tablicę pixelmap wartością odczytaną wprost z pliku zasobu, bez sprawdzenia granic. Spreparowany motyw powoduje zapis do około 256 KB poza koniec tablicy, uszkadzając własny obszar pamięci GUIX.
Ocena ryzyka
Wczytanie złośliwego motywu może uszkodzić pamięć GUIX i potencjalnie doprowadzić do wykonania kodu lub awarii systemu.
Rekomendacja
Zaktualizuj GUIX do wersji zawierającej poprawkę i nie wczytuj niezaufanych motywów binarnych do czasu aktualizacji.
Inne podatności w GUIX
Zobacz wszystkie- CVE-2026-91057Średnie
Funkcja _gx_multi_line_text_view_display_info_get() odczytuje jeden bajt poza końcem bufora tekstu aplikacji, gdy podany ciąg kończy się znakiem powrotu karetki (\r). Nadmiarowy odczyt może też spowodować przesunięcie indeksu wywołującego poza koniec ciągu, co prowadzi do drugiego nadmiarowego odczytu w _gx_multi_line_text_view_string_total_rows_compute() i wiersza tekstu, którego nie ma w źródle.
- CVE-2026-92454Średnie
Dekoder JPEG GUIX odczytuje cztery rodzaje segmentów znaczników bez sprawdzenia, czy każdy z nich jest wystarczająco długi. Obcięty segment powoduje odczyt poza bufor obrazu wywołującego, a zerowy współczynnik próbkowania chrominancji powoduje nieskończoną pętlę dekodowania bloków.
- CVE-2026-92446Średnie
Funkcje gx_binres_theme_load() i gx_binres_font_load() przyjmują zasób jako wskaźnik GX_UBYTE * bez długości, a struktura GX_BINRES_DATA_INFO nie ma pola na rozmiar. Zasób deklarujący więcej danych niż zawiera jest odczytywany poza swój koniec, a przesunięcie z pliku jest zamieniane na wskaźnik bez sprawdzenia granic.
- CVE-2026-91189Wysokie
Loader zasobów binarnych GUIX nie sprawdza poprawności zakresu glifów strony czcionki. Strona deklarująca first_glyph > last_glyph powoduje niedomiar licznika, a niekontrolowane mnożenie prowadzi do alokacji zbyt małego bufora, do którego zapisywane są kontrolowane przez atakującego rekordy glifów — co skutkuje przepełnieniem sterty.
- CVE-2026-91186Wysokie
Czytnik chunków PNG w GUIX nie egzekwuje kolejności chunków i pozwala na ponowne odczytanie IHDR po IDAT. Drugi IHDR nadpisuje wymiary i głębię bitową po alokacji bufora danych, a etap odwracania filtrów wierszy operuje na nowych wymiarach, wychodząc poza starą alokację i powodując zapis poza buforem sterty.
- CVE-2026-91059Średnie
Dekoder JPEG GUIX nie wymusza kolejności znaczników JPEG. Plik umieszczający drugi nagłówek ramki SOF0 po SOS powoduje ponowne uruchomienie parsera nagłówka po przydzieleniu bufora wyjściowego, a dekoder zwraca GX_SUCCESS i publikuje GX_PIXELMAP o wymiarach i data_size przekraczających alokację.
- CVE-2026-102729Średnie
Funkcja `gx_binres_theme_load()` określa rozmiar bufora motywu na podstawie żądanego motywu i przydziela go nawet wtedy, gdy zasób nie zawiera motywu o tym identyfikatorze. Identyfikator motywu równy lub większy od liczby motywów zadeklarowanych w zasobie otrzymuje bufor o zerowym rozmiarze. Następnie przebieg ładowania przechodzi poza koniec tabeli motywów, traktuje to, co następuje, jako nagłówek motywu i zapisuje strukturę `GX_THEME` oraz jej tabele do tego zerowego bufora.
- CVE-2026-103414Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
`_gx_binres_pixelmap_table_load()` in the GUIX binary resource (theme) loader indexes the pixelmap table with a value read verbatim from the resource file and never bounds it against the table size. A crafted theme drives a write of up to roughly 256 KB past the end of the table. The overflowed buffer is allocated by GUIX itself, through `_gx_system_memory_allocator`, rather than supplied by the caller, so the loader corrupts its own arena. 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

