CVE-2026-59679
KrytyczneCVSS 9.0Streszczenie
W funkcji fs_read_glyphs() klienta serwera czcionek libXfont2 (src/fc/fserve.c) tablica encoding[] jest indeksowana liczbą num_chars z odpowiedzi FS_QueryXBitmaps16, mimo że została zaalokowana na podstawie num_extents z osobnej odpowiedzi FS_QueryXExtents16. Te dwa pola CARD32 nie są wzajemnie weryfikowane. Złośliwy lub przejęty serwer czcionek może wysłać małe num_extents (np. 1), a następnie duże num_chars (np. 100000), powodując kontrolowane przez atakującego odczyty i zapisy poza granicami sterty.
Ocena ryzyka
Złośliwy serwer czcionek może wywołać odczyt i zapis poza granicami sterty, co może prowadzić do wycieku danych lub wykonania kodu w kontekście procesu klienta. Ryzyko dotyczy systemów korzystających z libXfont2 do komunikacji z serwerami czcionek.
Rekomendacja
Zaktualizuj bibliotekę libXfont2 do wersji zawierającej poprawkę. Ogranicz zaufanie do zdalnych serwerów czcionek i korzystaj wyłącznie z zaufanych źródeł czcionek.
Inne podatności w libXfont2
Zobacz wszystkie- CVE-2026-44950Krytyczne
W funkcji fs_read_glyphs() klienta serwera czcionek libXfont2 (src/fc/fserve.c) bitmapy glifów są kopiowane do jednego bufora, a istniejące sprawdzenia weryfikują jedynie, czy zakres źródłowy mieści się w buforze bitmapy źródłowej. Nie sprawdza się, czy bieżący kursor docelowy przekroczył rozmiar alokacji. Złośliwy serwer czcionek może wysłać nakładające się offsety źródłowe (np. 1000 glifów po {position:0, length:64} przy nbytes=64), co daje łącznie 64000 bajtów zapisu do bufora docelowego o rozmiarze 64 bajtów — przepełnienie bufora sterty z zawartością kontrolowaną przez atakującego.
- CVE-2026-56003Wysokie
W bibliotece libXfont2 przed wersją 2.0.8 wykryto przepełnienie bufora sterty w funkcji ComputeScaledProperties() podczas parsowania plików PCF. Brak sprawdzania rozmiaru bufora właściwości umożliwia uwierzytelnionym klientom X wykonanie kodu w serwerze X.
- CVE-2026-56002Wysokie
W bibliotece libXfont2 przed wersją 2.0.8 wykryto przepełnienie bufora sterty w funkcji pcfReadFont() spowodowane brakiem sprawdzania granic glifów. Umożliwia to uwierzytelnionemu klientowi X wykonanie kodu w serwerze X.
- CVE-2026-56001Wysokie
W bibliotece libXfont2 przed wersją 2.0.8 wykryto przepełnienie bufora sterty w funkcji BitmapScaleBitmaps, spowodowane przepełnieniem 32-bitowego rozmiaru. Podatność ta może zostać wykorzystana przez atakujących mających dostęp do serwera X do wykonania kodu w kontekście serwera X.
Oryginalny opis (angielski, źródło NVD)
fs_read_glyphs() in the libXfont2 font-server client (src/fc/fserve.c) indexes the per-character encoding[] array using num_chars from the FS_QueryXBitmaps16 reply, but that array was allocated with a size derived from num_extents in the separate FS_QueryXExtents16 reply. The two CARD32 fields are never cross-checked. A malicious or compromised font server can send a small num_extents (e.g. 1) in the extents reply, then a large num_chars (e.g. 100000) in the bitmaps reply. This causes attacker-controlled out-of-bounds heap read and writes.

