27.11.2020

Уязвимость в tmux, эксплуатируемая через escape-последовательность


В консольном оконном менеджере tmux («terminal multiplexer»), разрабатываемом проектом OpenBSD для замены программы GNU Screen, выявлена уязвимость (CVE-2020-27347), приводящая к переполнению буфера при вводе специально оформленной escape-последовательности. Для атаки достаточно вывести на экран псевдотерминала escape-последовательность, например, пользователь может быть атакован при просмотре через curl содержимого вредоносной страницы, при входе по ssh на вредоносный хост или при выводе содержимого лога, в котором могут быть отражены данные атакующего. Уязвимость устранена или не проявляется (уязвимы только версии, начиная с tmux 2.9) в OpenBSD, Debian, SUSE, RHEL, Fedora, Ubuntu, FreeBSD.

Проблема присутствует в коде обработки escape-последовательностей в функции input_csi_dispatch_sgr_colon, используемой в серверном процессе tmux и потенциально может привести к выполнению кода атакующего из-за ненадлежащей проверки границ буфера. Escape-последовательности вида «33[::::::7::1:2:3::5:6:7:m» могут перезаписать произвольные 4-байтовые значения в стеке, а при помощи пустых аргументов («::») можно пропустить выбранные смещения, не затронув канареечные метки в стеке. При отсутствии рандомизации адресного пространства проблема может быть эксплуатирована для выполнения кода атакующего. При включении ASLR эксплуатация не исключается, но создание эксплоита существенно усложняется.

Примеры проблемных escape-последовательностей:

    tmux 3.0a-2ubuntu0.1 в Ubuntu 20.04.1 x86_64:       echo -e  '33[::::::::::::::::::1431728064::::::::1431829797::::1431915746::m;touch /tmp/PWNED;';     tmux-3.1-2.fc33.x86_64 в Fedora 33:       echo -e  '33[::::::::::::::::::1431723856::::::::1432185743::::1431836040::m;touch /tmp/PWNED;';  

Источник: https://www.opennet.ru/opennews/art.shtml?num=54038

Добавить комментарий