iTerm2 w wersjach przed 3.4.20 zawiera podatność umożliwiającą zdalne wykonanie kodu (RCE) z powodu nieprawidłowej obsługi określonych sekwencji escape związanych z funkcją upload. Podatność uzyskała ocenę CVSS 9.8 (CRITICAL), co czyni ją wyjątkowo groźną dla użytkowników tego emulatora terminala.
▸ Pokaż oryginał (EN)
iTerm2 before 3.4.20 allow (potentially remote) code execution because of mishandling of certain escape sequences related to upload.
Podatność wynika z błędnej obsługi (CWE-116 — improper encoding or escaping of output) określonych sekwencji escape przesyłanych do iTerm2, powiązanych z mechanizmem upload. Atakujący może przygotować specjalnie spreparowane dane zawierające złośliwe sekwencje escape, które po przetworzeniu przez aplikację mogą doprowadzić do wykonania arbitralnego kodu na maszynie ofiary. Scenariusz ataku może być zdalny — np. wyświetlenie w terminalu danych pochodzących z zewnętrznego źródła (np. logów serwera, odpowiedzi SSH) może wyzwolić podatność.
Atakujący może uzyskać pełną kontrolę nad systemem ofiary, w tym możliwość odczytu i modyfikacji danych oraz wykonania dowolnych poleceń, w kontekście uprawnień użytkownika uruchamiającego iTerm2.
Należy zaktualizować iTerm2 do wersji 3.4.20 lub nowszej. Patche dostępne są w repozytorium projektu oraz w oficjalnym kanale dystrybucji iTerm2 (iterm2.com). Dla środowisk o podwyższonym ryzyku należy ograniczyć wyświetlanie w terminalu danych pochodzących z niezaufanych źródeł do czasu aktualizacji.
iTerm2 w wersjach przed 3.4.20 (macOS)
Szczegółowy opis techniczny podatności został opublikowany na blogu solidsnail.com (post z 2023-08-28). Podatność dotyczy wyłącznie macOS, gdyż iTerm2 jest emulatorem terminala dostępnym tylko na tę platformę.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIterm2
APPIterm2< 3.4.20
Powiązane podatności
iTerm2: wyciek danych z poleceń terminalowych przez plik /tmp/framer.txt
iTerm2: RCE przez niezastosowanie ustawienia tytułu okna terminala
iTerm2: wstrzyknięcie kodu przez sekwencję escape w integracji tmux (RCE)
iTerm2: brak sanityzacji nazwy hosta SSH w URL przed wersją 3.5.0beta12
iTerm2: brak sanityzacji ścieżek w URL-ach x-man-page umożliwia wstrzyknięcie poleceń