В операционной системе Linux обнаружена серьёзная уязвимость, которая даёт возможность непривилегированным атакующим красть пароли или изменять буфер обмена жертв. Проблема касается команды wall в пакете util-linux, являющегося частью всех дистрибутивов Linux уже последние 11 лет, вплоть до недавнего выхода версии 2.40 .
Уязвимость получила идентификатор CVE-2024-28085 и название WallEscape. Она интересна тем, что позволяет злоумышленнику обмануть пользователя, заставив его предоставить свой административный пароль.
Тем не менее, уязвимость ограничена специфическими условиями для реализации. Так, атакующему необходим доступ к серверу Linux, на котором одновременно через терминал работает несколько пользователей, например, в университетской среде.
Обнаружение проблемы принадлежит исследователю безопасности Скайлеру Ферранте, который описал WallEscape как “неправильную нейтрализацию последовательностей управления в команде wall”.
Если подробнее рассмотреть уязвимость с технической стороны, нужно отметить, что она позволяет злоумышленникам использовать управляющие символы для создания поддельного запроса на ввод пароля sudo в терминалах других пользователей. Это становится возможным благодаря неправильной фильтрации этих символов при обработке ввода через аргументы командной строки.
Для использования WallEscape должны быть выполнены определённые условия, включая активность утилиты mesg и наличие у команды wall разрешений setgid. Эти условия существуют, например, в Ubuntu 22.04 LTS (Jammy Jellyfish) и Debian 12.5 (Bookworm), но отсутствуют в той же CentOS.
Ферранте предоставил PoC-код для демонстрации эксплуатации, описав сценарии, которые могут привести к различным результатам, включая создание поддельного запроса sudo в терминале Gnome и изменение буфера обмена жертвы через управляющие последовательности. Однако метод изменения буфера обмена не работает со всеми эмуляторами терминала.
Эксплуатация WallEscape требует локального доступа (физического или удалённого через SSH), что снижает её критичность, но оставляет риск для многопользовательских систем, таких как серверы организаций.
Пользователям рекомендуется незамедлительно обновиться до версии linux-utils v2.40 для устранения уязвимости. В качестве временной меры предосторожности администраторы могут удалить разрешения setgid у команды wall или отключить функцию рассылки сообщений с помощью команды mesg, установив её флаг в значение “n”.