tg-me.com/dereference_pointer_there/9720
Last Update:
Уязвимость в KDE Konsole, позволяющая выполнить код при открытии страницы в браузере
https://www.opennet.ru/opennews/art.shtml?num=63410
Оригинал
Code execution from web browser using URL schemes handled by KDE's KTelnetService and Konsole (CVE-2025-49091)
https://proofnet.de/publikationen/konsole_rce.html
> Уязвимость вызвана тем, что в случае, когда в системе не установлена утилита 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.
> если отсутствует telnet при открытии в браузере ссылки "telnet:///proc/self/cwd/Downloads/evil" в Konsole запускался "/bin/bash /proc/self/cwd/Downloads/evil"
> запускался "/bin/bash
Я считаю, что это прекрасно.
Вообще, когда читал описание баги, то в голове сразу родилась мысль, что в коде просто игнорируется отсутствуие нужного бинаря и дальше выполняется что-то типа
bash <переменная_с_путём_к_бинарю> path
, а так как бинаря нет, то строка исполнения "конструируется" неправильно.
Посмотрел фикс, так и оказалось по сути
https://invent.kde.org/utilities/konsole/-/commit/09d20dea109050b4c02fb73095f327b5642a2b75
Тот кто писал на shell скрипты сложнее чем hello world
, тот точно ловил проблемы похожие с пустой переменной в окружении. Самое, как по мне, показательное из этой серии что-то типаsudo rm -rf "$IMPORTANT_DIR"/lib
, где переменная IMPORTANT_DIR
теряется, а вместе с ней и либы в системе 🌝
BY Блог*
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/dereference_pointer_there/9720