OpenSSH 10.5: три исправления безопасности, ssh -Z и обязательный ECC

11 августа 2026 года команда OpenSSH выпустила версию 10.5, переносимая сборка для Linux называется 10.5p1. Об этом Дэмиен Миллер написал в рассылке openssh-unix-dev, полный список изменений лежит в примечаниях к выпуску. В релизе три исправления безопасности, новые настройки для FIDO-ключей, режим ssh -Z и одно изменение, которое может сломать самостоятельную сборку.

OpenSSH стоит почти на каждом Linux-сервере и VPS. Если вы заходите на машины по ключам, пробрасываете агент или держите FIDO-токен, этот выпуск стоит прочитать целиком и не ждать, пока пакет приедет сам.

Почему релизы станут чаще

В примечаниях разработчики прямо объясняют: в последнее время им приходит много отчётов об уязвимостях, найденных ИИ-моделями или с их помощью. Многие из них не опасны в реальных условиях, но часть оказывается настоящими ошибками. Бывало, что баг, найденный ИИ, потом независимо находил другой исследователь. Отсюда вывод команды: те, кто о багах не сообщает, тоже могут их найти.

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

Сборка без ECC больше не пройдёт

Переносимый OpenSSH теперь требует от libcrypto поддержку эллиптических кривых, включая NISTP521. По словам разработчиков, она есть в стандартных сборках всех поддерживаемых библиотек: LibreSSL, OpenSSL, BoringSSL и AWS LC. Режим —without-openssl это требование не затрагивает.

Пакеты Debian, Ubuntu и RHEL собраны с полноценным OpenSSL, так что обычного сервера это не касается. Проблема может возникнуть у тех, кто сам собирает OpenSSH для встраиваемых систем на урезанной криптобиблиотеке.

Три исправления безопасности

Первое касается ssh-agent. Пока агент был заблокирован, он отклонял запросы расширения session-bind@openssh.com, по которому агент понимает, что его пробросили на другой хост. В итоге действия, разрешённые только локально, можно было выполнить удалённо: добавить токен PKCS#11 или воспользоваться ключом с ограничением по хостам назначения. Ошибку нашёл sn0x-sharma.

Второе исправление в клиенте ssh: возможное обращение к освобождённой памяти после realloc. Оно срабатывало, если через сокет мультиплексирования (ControlMaster) добавляли удалённый проброс порта, пока сервер ещё не ответил на предыдущий запрос такого проброса. Отчёт и патч прислал Брайан Мингус из Cognatory.

Третье в sshd: ключевое слово restrict в authorized_keys теперь правильно запрещает и проброс туннелей. По умолчанию туннели и так выключены в настройках сервера, но если вы рассчитывали на restrict как на жёсткий минимум прав для ключа, до 10.5 защита была неполной. Об ошибке сообщил Erichen из Института вычислительной техники Китайской академии наук.

Номеров CVE в примечаниях к выпуску нет. Ждать их в NVD не обязательно: исправления уже в коде, а дистрибутивы опишут их в своих бюллетенях. Как выглядит настоящая критичная дыра с номером, видно на примере regreSSHion, CVE-2024-6387.

Что нового для FIDO и отладки

ssh-keygen научился ставить и снимать флаги touch-required и verify-required у приватного FIDO-ключа при смене парольной фразы. Если политика касания или PIN поменялась, ключ не придётся создавать заново.

Клиент поменял порядок перебора ключей при входе: сначала FIDO-ключи без касания, последними те, что требуют PIN или биометрию. На машине с несколькими токенами вход может вести себя чуть иначе, это ожидаемо.

Новый режим ssh -Z печатает ключи, которые клиент попробует для входа, в том порядке, в каком будет их перебирать. Он пригодится, когда ключ вроде бы есть, а сервер его не принимает. Про саму настройку ключей есть отдельная инструкция.

ssh -Z user@example.com

Ещё sshd теперь подписывает процесс-монитор после входа как sshd-session, его проще найти в ps.

Мелкие исправления

ssh-keyscan больше не зависает на сервере, который не отдаёт баннер, и массовый опрос хостов идёт дальше. Ошибки пакетного уровня в sshd теперь пишутся в лог с адресом, портом и пользователем. Тип ключа клиента сверяется со списком разрешённых алгоритмов до разбора самого ключа: так часть кода ушла из поверхности атаки до входа. Это предложил Кристофер Пол Рольф из Anthropic.

Вернулось то, что сломали в 10.4: имена параметров GSSAPI, работа ChannelTimeout и RekeyLimit внутри блоков Match и директива PAMServiceName в Match для переносимой версии.

Как обновиться

Сначала посмотрите текущие версии клиента и сервера:

ssh -V
sshd -V 2>&1
dpkg -l openssh-server openssh-client 2>/dev/null
rpm -q openssh-server openssh-clients 2>/dev/null

В Debian и Ubuntu версия 10.5 появится не сразу, обычно дистрибутив переносит исправления в свою ветку пакета. Когда обновление пришло, проверьте конфиг и перезагрузите службу. Текущую сессию не закрывайте, пока не убедитесь со второго терминала, что новый вход работает.

sudo apt update
sudo apt install --only-upgrade openssh-client openssh-server
sudo sshd -t
sudo systemctl reload ssh || sudo systemctl reload sshd

Если вы пробрасываете агент через бастион, обновите и его, а не только ноутбук. Если ключи в authorized_keys ограничены через restrict, перечитайте их после обновления. Если собираете OpenSSH сами, сверяйте SHA256 из примечаний и подпись ключом RELEASE_KEY.asc. Как сменить порт сервера, описано в этой заметке, а следующий выпуск разобран в обзоре OpenSSH 10.6.

OpenSSH 10.5 закрывает три ошибки, важные в первую очередь для тех, кто пробрасывает агент, работает через ControlMaster и ограничивает ключи. Для обычного VPS обновление не горит, но откладывать его надолго незачем: команда сама обещает выпускать исправления чаще.

Источники и ссылки


Комментарии загружаются…