Уязвимость в OpenSSH: имена пользователей позволяют выполнить код

Уязвимость в OpenSSH: имена пользователей позволяют выполнить код

Уязвимость в OpenSSH: имена пользователей позволяют выполнить код

Исследователь безопасности Дэвид Лидбитер обнаружил уязвимость в OpenSSH — CVE-2025-61984 — которая демонстрирует: даже мелкие особенности парсинга команд и поведения shell могут привести к удалённому выполнению кода.

Суть проблемы проста и неприятна: в OpenSSH (до версии 10.1) контрол-символы в именах пользователей, полученных из ненадёжных источников, могли не отфильтровываться.

Когда такое «имя» подставлялось в ProxyCommand (через переменную %r), OpenSSH формировал строку для exec, которую запускал через shell. Если в этой строке оказывались символы вроде $[ и символы новой строки, некоторые оболочки (например, bash) могли интерпретировать это так, что первая команда аварийно завершается, а затем выполняется то, что идёт после — то есть возможна инъекция команды.

Эксплуатация требует специфической связки: конфигурация, использующая ProxyCommand с %r, уязвимая оболочка и «входной» источник имени пользователя, который злоумышленник контролирует. Практический пример — злоумышленный .gitmodules, где в URL подставляют строку вроде:

[submodule "foo"]
  path = foo
  url = "$[+]\nsource poc.sh\n@foo.example.com:foo"

Если SSH-конфиг содержит строку вроде

ProxyCommand some-command %r@%h:%p

и вы запускаете git clone --recursive, то в подходящих условиях может выполниться source poc.sh — до установления самого соединения.

Важно понимать: условия для успешной атаки нишевые, но реальны — инструментальная цепочка Git → SSH → shell и автоматизация (CI/CD) дают атакующему много точек входа. Проблема усугубляется тем, что OpenSSH фильтровал многие метасимволы, но пропустил $ и [ — и это создало неожиданный вектор.

Исправление уже включено в OpenSSH 10.1: разработчики начали проверять и запрещать управляющие символы в именах пользователей через iscntrl() в ssh.c. То есть долгосрочное решение — обновиться до 10.1 или новее.

Если обновиться сразу нельзя, Лидбитер предлагает два практических временных шага. Во-первых, брать имя пользователя в одинарные кавычки в ProxyCommand, чтобы предотвратить подстановку:

ProxyCommand some-command '%r@%h:%p'

(Обратите внимание: одинарные кавычки нужны именно потому, что двойные не защитят от $[ — оболочка всё ещё будет их обрабатывать.) Во-вторых, по умолчанию отключить SSH-подмодули в Git и не позволять автоматические URL-хендлеры, которые могут передавать непроверенные SSH-команды:

git config --global protocol.ssh.allow user

Главный вывод — не полагаться на то, что «маленький» символ или строка не принесут беды: при передаче входа от ненадёжных источников через несколько инструментов даже неочевидная каверза в парсинге может стать критической. Рекомендуется как можно скорее обновить OpenSSH или применить временные защитные меры в конфигурациях ProxyCommand и политиках Git.

iOS 27 попробует остановить мошенников прямо во время развода по телефону

Apple готовит для iOS 27 новый фреймворк Trust Insights, который должен помогать приложениям замечать, что пользователя прямо сейчас могут разводить мошенники. Причём речь не о классическом антивирусе, а о попытке поймать социальную инженерию в процессе, когда человек сам переводит деньги, меняет настройки аккаунта или отправляет данные.

Apple объясняет проблему просто: такие атаки сложно ловить автоматически, потому что действия выполняет сам пользователь, аутентифицированный и вроде бы легитимный.

Особенно это актуально на фоне скамов с техподдержкой, фейковыми сотрудниками ведомств, семейными ЧП и дипфейками.

Trust Insights будет в основном работать на устройстве и анализировать не содержание сообщений, писем или фотографий, а поведенческие сигналы: паттерны взаимодействия, время, контекст и базовые данные сенсоров.

Если система решит, что пользователя, возможно, инструктируют мошенники, она присвоит операции средний или высокий уровень риска.

 

После этого приложение сможет показать предупреждение, добавить задержку, запросить дополнительную проверку или усложнить выполнение опасного действия. Например, перед платежом, сменой данных аккаунта, отправкой сообщения, подписанием документа или использованием дорогих ресурсов вроде ИИ-инференса.

Apple подчёркивает, что Trust Insights не читает содержимое Фотографий, Сообщений и Почты. Данные анализируются локально, сразу отбрасываются, а на серверы Apple уходит только итоговое значение риска. Там его могут сопоставить с данными аккаунта и признаками необычной активности, после чего система вернёт финальную оценку.

Отключить Trust Insights можно будет в настройках, но Apple предусматривает период ожидания. Логика понятна: мошенник вполне может наказать жертве срочно выключить защиту, иначе деньги пропадут.

Для разработчиков это новый инструмент, который позволит не просто молча проводить операции, а вмешиваться в момент, когда пользователь уже почти наступил на цифровые грабли.

RSS: Новости на портале Anti-Malware.ru