
Раскрыта информацию о критической уязвимости Terminal2Shell, которая присутствующая во всех операционных системах начиная с 1971 года. Баг позволяет любому, кто открывает терминал, получить полноценную интерактивную командную оболочку (shell). Мгновенно. Без какой-либо дополнительной аутентификации, помимо той, что уже была пройдена. Исправление от производителей ОС отсутствуют. До их выпусков рекомендуется задействовать компенсирующие меры.
Terminal2Shell — это уязвимость на уровне проектирования, затрагивающая эмуляторы терминала. При запуске терминала автоматически создаётся процесс командной оболочки (shell), который напрямую подключается к клавиатуре пользователя. После этого злоумышленник может выполнять произвольные команды, обладая всеми правами текущего пользователя системы.
Исследователи подтвердили, что командная оболочка выполняет любые введённые в неё команды — в том числе те, которые удаляют файлы, устанавливают программное обеспечение или изменяют конфигурацию системы. В ряде случаев было зафиксировано выполнение команд, которые вводил сам пользователь.
Этапы эксплуатации: откройте терминал. Этапа 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), своей мамой и как минимум тремя новостными изданиями.
Источник: habr.com