CRITICAL🇬🇧 English

CVE-2026-33642

Integer overflow i heap buffer over-read/write w terminalu Kitty

CVSS 9.9v3.1pub. 2026-05-19

Podatność w terminalu Kitty (wersje 0.46.2 i starsze) pozwala atakującemu na wywołanie przepełnienia bufora sterty poprzez spreparowane sekwencje escape zawierające złośliwe wartości przesunięć kompozycji. Ze względu na brak wymagań co do interakcji użytkownika i uprawnień, podatność stanowi poważne zagrożenie dla każdego systemu uruchamiającego podatną wersję terminala.

Pokaż oryginał (EN)

Kitty is a cross-platform GPU based terminal. In versions 0.46.2 and below, the handle_compose_command() function in kitty/graphics.c performs bounds validation on composition offsets using unsigned 32-bit arithmetic that is subject to integer wrapping, potentially leading to Heap Buffer Over-Read/Write. An attacker who can write escape sequences to a kitty terminal (e.g., via a malicious file, SSH login banner, or piped content) can supply crafted x_offset/y_offset values that pass the bounds check after wrapping but cause massive out-of-bounds heap memory access in compose_rectangles(). No user interaction is required. No non-default configuration is required. The attacker only needs the ability to produce output in a kitty terminal window. This issue has been fixed in version 0.47.0.

🤖 Analiza AI
Jak działa

Funkcja handle_compose_command() w pliku kitty/graphics.c waliduje przesunięcia kompozycji (x_offset/y_offset) przy użyciu arytmetyki 32-bitowych liczb całkowitych bez znaku, która jest podatna na integer wrapping (przepełnienie całkowite, CWE-190). Spreparowane wartości x_offset/y_offset mogą przejść weryfikację zakresową po zawinięciu liczby, a następnie spowodować masowy dostęp poza granicami bufora sterty w funkcji compose_rectangles() — zarówno odczyt (CWE-125), jak i zapis (CWE-787). Atakujący może dostarczyć złośliwe sekwencje escape na wiele sposobów: poprzez złośliwy plik, banner logowania SSH lub zawartość przesyłaną potokiem (pipe) — bez konieczności jakiejkolwiek interakcji ze strony użytkownika i bez niestandardowej konfiguracji.

Skutki

Atakujący może uzyskać nieautoryzowany odczyt i zapis w pamięci sterty procesu terminala, co może prowadzić do wycieku poufnych danych z pamięci, uszkodzenia danych lub potencjalnego zdalnego wykonania kodu (RCE) w kontekście użytkownika uruchamiającego terminal.

Mitygacja

Należy zaktualizować Kitty do wersji 0.47.0, w której błąd został naprawiony. Poprawka dostępna jest w repozytorium projektu (commit e9661f0f3afb4e4dbffa509adfb3df3c9780ad34). Do czasu aktualizacji należy unikać otwierania niezaufanych plików, łączenia się z niezaufanymi serwerami SSH oraz przetwarzania niezaufanych danych w oknie terminala Kitty.

Kogo dotyczy

Kitty w wersjach 0.46.2 i starszych (wszystkie platformy obsługiwane przez aplikację).

Uwagi

Podatność zgłoszona i naprawiona w ramach GitHub Security Advisory GHSA-qfgm-2c64-6x3x. Wektor ataku nie wymaga żadnych uprawnień ani interakcji użytkownika (AV:N/AC:L/PR:N/UI:N), co czyni ją szczególnie niebezpieczną w środowiskach, gdzie terminal Kitty wyświetla dane z zewnętrznych źródeł.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Memory
CWE
Referencje