Раскрыта информацию о критической уязвимости Terminal2Shell, которая присутствующая во всех операционных системах начиная с 1971 года. Баг позволяет любому, кто открывает терминал, получить полноценную интерактивную командную оболочку (shell). Мгновенно. Без какой-либо дополнительной аутентификации, помимо той, что уже была пройдена. Исправление от производителей проектов терминалов в некоторых версиях отсутствуют. До их выпусков рекомендуется задействовать компенсирующие меры.

Terminal2Shell — это уязвимость на уровне проектирования (design-level vulnerability), затрагивающая эмуляторы терминала. При запуске терминала автоматически создаётся процесс командной оболочки (shell), который напрямую подключается к клавиатуре пользователя. После этого злоумышленник может выполнять произвольные команды, обладая всеми правами текущего пользователя системы. Проблема затрагивает некоторые версии популярных эмуляторов терминала. Их разработчики выпускали патчи, закрывающие уязвимость, но даже на момент 2024 года она всё ещё встречалась в отдельных проектах.

Исследователи подтвердили, что командная оболочка выполняет любые введённые в неё команды — в том числе те, которые удаляют файлы, устанавливают программное обеспечение или изменяют конфигурацию системы. В ряде случаев было зафиксировано выполнение команд, которые вводил сам пользователь.

Этапы эксплуатации: откройте терминал. Этапа 2 не существует. Для эксплуатации необходим локальный доступ, исправная клавиатура и возможность найти приложение «Терминал».

На сайте об уязвимости представлен работающий прототип, подтверждающий концепцию. Он полностью готов к рабочему применению. Кликните внутри области и начните вводить текст. Попробуйте ввести команду help.

Подверженные проблеме ОС:

Признаки компрометации:

  • если вы видите любой из следующих символов, за которым следует мигающий курсор, значит, ваша система скомпрометирована: $%>❯#

  • Символ # означает, что злоумышленник получил права суперпользователя (root). Отключитесь от сети, а затем — и от общества.

Меры по снижению рисков:

  • исправление от производителя отсутствует. До его выхода рекомендуются следующие компенсирующие меры: Не открывайте терминалы. Это наиболее эффективная мера.

  • Стоит отметить, что многие разработчики открывают терминалы «для работы» — специалистам по безопасности следует расценивать это как тревожный сигнал.

  • Закрывайте терминалы сразу после их открытия.

  • Частичная мера: при повторном открытии терминала уязвимость снова становится актуальной. Печатайте медленнее Это снижает количество вводимых команд в минуту и, следовательно, интенсивность атаки.

  • Отключите клавиатуру. Эффективно, однако использование экранной клавиатуры позволяет обойти это ограничение.

  • Установите значение SHELL=/bin/false. Полностью устраняет уязвимость. А заодно — и возможность пользоваться компьютером.

Хронология раскрытия информации по этой проблеме:

  • 1971 год — В состав Unix v1 входит уязвимый код: командная оболочка Thompson shell.

  • 1979 год — Выпущена командная оболочка Bourne shell. Уязвимость сохранена в целях обеспечения полной обратной совместимости.

  • 1989 год — Выпущена оболочка Bash. Само название подтверждает, что атака является намеренной.

  • 2009 год — Растет популярность оболочки zsh. Теперь она еще и выглядит привлекательно — по мнению исследователей, это заманивает больше жертв.

  • 2026 год — Исследователи одновременно уведомляют всех разработчиков программного обеспечения.

  • 2026 год — Разработчики отвечают: «Так ведь это и есть терминал».

  • 2026 год — Исследователи регистрируют домен, создают логотип и связываются с прессой. Процесс скоординированного раскрытия информации считается завершённым.

Часто задаваемые вопросы:

  • затронуло ли это меня? Если у вас есть компьютер — да. Если у вас есть телефон — тоже затронуло, просто вы ещё не обнаружили терминал.

  • Используется ли это в реальных условиях? Да. Телеметрия показывает, что миллионы разработчиков ежедневно используют Terminal2Shell — зачастую десятки раз в час. Некоторые даже настроили его так, чтобы он открывался автоматически при входе в систему.

  • Может ли злоумышленник получить права суперпользователя (root)? Только в том случае, если он знает пароль пользователя. К сожалению, в наиболее распространённом сценарии атаки злоумышленником выступает сам пользователь.

  • Почему у неё есть логотип? У каждой серьёзной уязвимости должны быть логотип, доменное имя и название, состоящее из числа, за которым следует существительное. Здесь есть всё три компонента — значит, уязвимость наверняка серьёзная.

  • Связано ли это с другими уязвимостями семейства 2Shell? Напрямую. Мы проанализировали общедоступные концепты эксплойтов (PoC) для всех уязвимостей 2Shell, которые удалось найти, и почти все они начинаются одинаково: исследователь открывает терминал и вводит команду. Каждый из этих эксплойтов опирается на Terminal2Shell. Это «уязвимость в основе уязвимостей» — единственная, которая предоставляет готовый командный интерпретатор (shell) ещё до начала самой атаки. Устранение Terminal2Shell позволило бы в одночасье нейтрализовать большую часть семейства *2Shell. Но это также лишило бы исследователей возможности написать очередную статью в блог — именно поэтому ни один вендор не хочет браться за исправление этой проблемы.

  • Стоит ли паниковать? Да. Паника — это рекомендуемая реакция на любую уязвимость веб-сайта. Пожалуйста, поделитесь этой страницей со своим директором по информационной безопасности (CISO), своей мамой и как минимум тремя новостными изданиями.