CVE-2026-44950
KrytyczneCVSS 9.0Streszczenie
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.
Ocena ryzyka
Złośliwy serwer czcionek może wywołać przepełnienie bufora sterty, co może prowadzić do wykonania kodu lub awarii procesu klienta. Ryzyko dotyczy systemów korzystających z libXfont2.
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-59679Krytyczne
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.
- 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) copies each glyph's bitmap into a single buffer. Existing checks validates only that the source slice (position, length) lies within the source bitmap buffer. It does not check whether the running destination cursor has exceeded the allocation. A malicious font server can send overlapping source offsets -- for example 1000 glyphs each referencing {position:0, length:64} with nbytes=64. Each individual source range passes the existing validation, but the cumulative writes total 64000 bytes into a 64-byte destination buffer. This is a heap buffer overflow with attacker-controlled content.

