Niedawno pojawiły się wiadomości wykryto lukę w emulatorze terminala xterm (już skatalogowany jako CVE-2022-45063), problem umożliwia wykonywanie poleceń powłoki gdy niektóre sekwencje specjalne są przetwarzane w terminalu.
O problemie mówi się, że jest spowodowane błędem w przetwarzaniu kodu ucieczki 50 który służy do ustawiania lub uzyskiwania opcji czcionek. Jeśli żądana czcionka nie istnieje, operacja zwraca nazwę czcionki określonej w żądaniu.
Problem tkwi w sekwencji OSC 50, która służy do konfiguracji i konsultacji fontanna. Jeśli dane źródło nie istnieje, to nie jest ustawione, ale zapytanie zwróci ustawioną nazwę. Znaki kontrolne nie mogą być dołączone, ale łańcuch odpowiedzi można zakończyć za pomocą ^G. Wschód zasadniczo daje nam prymityw, aby zwrócić tekst do terminala i kończąc na ^G.
Znaki kontrolne nie mogą być wstawione bezpośrednio w imieniu, ale zwracany ciąg można zakończyć sekwencją „^G”, który w zsh, gdy aktywny jest tryb edycji linii w stylu vi, powoduje wykonanie operacji rozwijania listy, której można użyć do wykonania poleceń bez wyraźnego naciskania klawisza enter.
Do ataku w najprostszym przypadku wystarczy wyświetlić zawartość specjalnie zaprojektowanego pliku na ekranie, na przykład za pomocą narzędzia cat lub wklejając linię ze schowka.
Debian, Red Hat i inne domyślnie wyłączają operacje na czcionkach , ale użytkownicy mogą je ponownie włączyć poprzez menu opcji lub konfiguracji. Również upstream xterm to robi nie wyłącza ich domyślnie, więc niektóre dystrybucje zawierają a Wrażliwa konfiguracja domyślna.
Aby skutecznie wykorzystać lukę, użytkownik musi używać powłoki Zsh z edytorem wiersza poleceń (tryb vi-cmd) zmienionym na tryb „vi”, który generalnie nie jest używany domyślnie w dystrybucjach.
Zasadniczo potrzebujemy:
Zsh
aktywny tryb edycji linii w stylu vi
skopiuj tekst trojana do schowka
wklej to w zshMożna to zrobić automatycznie, wiele witryn modyfikuje tekst podczas kopiowania go do schowka. Używam więc tylko bufora wyboru, do którego nie mają dostępu przeglądarki. Tylko w gtk3, aw szczególności w ff, ciągle się psują z jakiegoś powodu, jest to męczące.
Problem nie pojawia się również, gdy xterm jest ustawiony na allowWindowOps=false lub allowFontOps=false. Na przykład konfiguracja Zezwól na FontOps=false jest ustawiony na OpenBSD, Debian i RHEL, ale nie jest domyślnie wymuszany na Arch Linux.
Zgodnie z dziennikiem zmian i oświadczeniem badacza, który zidentyfikował problem, luka w zabezpieczeniach naprawiono w wersji xterm 375, ale według innych źródeł luka nadal objawia się w Xterm 375 Arch Linux.
Oznacza to, że aby wykorzystać tę lukę, użytkownik musi być
używając Zsh w trybie edycji linii vi (zwykle przez $EDITOR, który ma „vi” w
jego). Chociaż jest to nieco niejasne, nie jest to całkowicie niespotykane.
konfiguracjaW tej konfiguracji coś takiego:
printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063
cat cve-2022-45063 # lub inny sposób dostarczenia tego ofierze
Na koniec, jak zawsze, zaleca się użytkownikom systemów, których dotyczy problem, aktualizowanie swoich systemów, ponieważ jak wiadomo, gdy znane są luki w zabezpieczeniach, programiści muszą naprawić te błędy, ponieważ wiele z tych błędów jest ujawnianych.
Warto zaznaczyć, że operacje na czcionkach są niedozwolone w domyślnych ustawieniach programu xtermin z niektóre dystrybucje Linuksa, więc nie wszystkie dystrybucje są podatne na ten błąd. Osoby zainteresowane śledzeniem publikacji poprawek według rozkładów mogą to zrobić na następujących stronach: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD y NetBSD.
Jeżeli jesteś chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.