CVE-2026-91057
ŚrednieCVSS 4.6Streszczenie
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.
Ocena ryzyka
Może wystąpić odczyt poza granicami bufora i błędne renderowanie tekstu, co potencjalnie prowadzi do awarii aplikacji lub ujawnienia danych.
Rekomendacja
Zaktualizuj bibliotekę GUIX do wersji zawierającej poprawkę sprawdzania końca ciągu w _gx_multi_line_text_view_display_info_get().
Inne podatności w GUIX
Zobacz wszystkie- 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-92449Średnie
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.
- 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_multi_line_text_view_display_info_get()` reads one byte past the end of the application's text buffer when the string it is given ends with a carriage return (`\r`). The over-read can also cause callers to advance their index past the end of the string, producing a second over-read in `_gx_multi_line_text_view_string_total_rows_compute()` and a row of text that is not in the source.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

