CVE-2026-80432
ŚrednieCVSS 6.0Streszczenie
Brak autoryzacji w ścieżce obsługi upuszczania protokołu drag and drop w kitty od wersji 0.47.0 przed 0.49.0 pozwala programowi piszącemu do terminala na uzyskanie zawartości plików przeciągniętych nad oknem, nawet jeśli użytkownik nie zakończy upuszczania, a także na kontynuowanie odczytu plików po opuszczeniu okna przez przeciąganie.
Ocena ryzyka
Ujawnienie zawartości plików przeciąganych nad oknem może prowadzić do wycieku poufnych danych, nawet jeśli użytkownik nie wykonał upuszczenia.
Rekomendacja
Zaleca się aktualizację kitty do wersji 0.49.0 lub nowszej oraz unikanie przeciągania poufnych plików nad oknem terminala do czasu aktualizacji.
Inne podatności w kitty
Zobacz wszystkie- CVE-2026-95835Średnie
Podatność typu Missing Authorization w obsłudze kodu escape askpass w terminalu kitty (wersje od 0.25.0 do 0.49.0). Funkcja handle_remote_askpass() otwiera obiekt pamięci współdzielonej POSIX wskazany w kodzie escape i zapisuje do niego odpowiedź użytkownika, nie sprawdzając właściciela ani uprawnień obiektu. Inny lokalny użytkownik może utworzyć taki obiekt, wymusić wyświetlenie fałszywego monitu (np. o hasło) i odczytać wpisany sekret.
- CVE-2026-95834Średnie
Podatność Use After Free w protokole przeciągnij i upuść w kitty od wersji 0.47.0 do 0.49.0 pozwala programowi piszącemu do terminala na odczyt i zapis do zwolnionej pamięci sterty. Błąd występuje w funkcji drag_remote_file_data() w kitty/dnd.c, gdzie wskaźnik do tablicy jest używany po jej zwolnieniu przez funkcje pomocnicze.
- CVE-2026-80431Średnie
W kitty w wersjach od 0.40.0 do 0.49.0 występuje podatność polegająca na zapisie poza granicami bufora w naturalnej gałęzi protokołu skalowania tekstu. Program zapisujący do terminala może wysłać kod escape OSC 66 z grafenem dłuższym niż cztery punkty kodowe, co powoduje zapis poza bufor o stałym rozmiarze w funkcji screen_handle_multicell_command(). Skutkiem jest zakończenie procesu kitty, a tym samym wszystkich okien, zakładek i procesów potomnych.
- CVE-2026-80430Średnie
W kitty w wersjach 0.47.0 do 0.49.0 występuje podatność nieprawidłowego rozwiązywania ścieżek przed dostępem do plików w protokole drag and drop (ściąganych). Program zapisujący do terminala może utworzyć pliki i katalogi poza katalogiem przejściowym przez zahaczanie wpisów z symlinkami i późniejsze podążanie za nimi podczas tworzenia elementów. Atakujący może wykorzystać to do zapisu w dowolnym miejscu zapisywalnym przez użytkownika kitty.
- CVE-2026-95832Krytyczne
W kitty od wersji 0.47.3 przed 0.49.0, obsługa kodów sterujących kolorami (colour control escape codes) nie neutralizuje nazw pól w odpowiedziach, co pozwala programowi piszącemu do terminala na wykonanie dowolnego polecenia w powłoce użytkownika. Atakujący może skomponować polecenie powłoki, wykorzystując znaki ASCII i znak nowej linii z handle_remote_ssh().
- CVE-2026-33642Krytyczne
Kitty to wieloplatformowy terminal oparty na GPU. W wersjach 0.46.2 i niższych funkcja handle_compose_command() w kitty/graphics.c wykonuje walidację granic przesunięć kompozycji przy użyciu arytmetyki 32-bitowej bez znaku, która jest podatna na zawijanie liczb całkowitych, co może prowadzić do odczytu/zapisu poza zakresem sterty (Heap Buffer Over-Read/Write). Atakujący, który może zapisać sekwencje ucieczki do terminala kitty (np. poprzez złośliwy plik, baner logowania SSH lub przetworzoną treść), może dostarczyć spreparowane wartości x_offset/y_offset, które przechodzą kontrolę granic po zawinięciu, ale powodują masywny dostęp do pamięci sterty poza zakresem w compose_rectangles(). Nie jest wymagana żadna interakcja użytkownika ani niestandardowa konfiguracja. Atakujący potrzebuje jedynie możliwości wyświetlenia danych w oknie terminala kitty. Problem został naprawiony w wersji 0.47.0.
- CVE-2026-72913Wysokie
Kitty to wieloplatformowy terminal oparty na GPU. Przed wersją 0.48.2 handlery DCS @kitty-echo i @kitty-ssh w kitty/window.py zapisują nieuwierzytelnione dane do standardowego wejścia powłoki dziecka, gdzie handle_remote_echo akceptuje drukowalne znaki poleceń powłoki, a handle_remote_ssh wywołuje get_ssh_data w kittens/ssh/utils.py, które emituje znak nowej linii; połączenie tych handlerów może wykonać polecenia kontrolowane przez atakującego, gdy użytkownik wyświetla niezaufane dane terminala. Problem naprawiono w wersji 0.48.2.
- CVE-2026-33633Wysokie
Terminal Kitty w wersjach 0.46.2 i niższych zawiera przepełnienie sterty w funkcji load_image_data(). Każdy proces mogący pisać do stdin terminala może wysłać spreparowane polecenie APC z deklaracją PNG, które przekracza dwukrotność początkowej pojemności bufora, powodując natychmiastowy crash i potencjalnie zdalne wykonanie kodu.
Oryginalny opis (angielski, źródło NVD)
Missing Authorization in the drop handling path of the drag and drop protocol in kitty from 0.47.0 before 0.49.0 allows a program writing to the terminal to obtain the contents of files dragged over the window even when the user never completes the drop, because drop_enqueue_request() in kitty/dnd.c serves a drag data request without first checking the drop state of the window, so a client that issues the request while a drag is merely hovering receives the data offered for the drag. In the same file, drop_left_child(), which runs when the drag leaves the window without a drop having occurred, releases the offered MIME list but retains the pending request state, the open file descriptor and its main loop transfer timer, the directory handles, the URI list and the pending MIME name, so a client can continue to read through a retained directory handle, and an in-flight file transfer continues to stream, when no drag is in progress. The file contents are read from the filesystem by the kitty process itself using the paths the drag source offered. This results in disclosure of the contents of files the user moved over the window without ever releasing them into it.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

