OpenSSH 10.3 закрывает shell injection и начинает постквантовую миграцию

OpenSSH 10.3 от 2 апреля — shell injection через %-tokens, ошибки сертификатов, ужесточение ECDSA и начало постквантовой миграции. Разбираем все изменения.

Обложка: OpenSSH 10.3 закрывает shell injection и начинает постквантовую миграцию

Если вы администрируете серверы по SSH — обновите OpenSSH до версии 10.3. Релиз от 2 апреля закрывает несколько уязвимостей, включая shell injection через имена пользователей, и начинает подготовку к постквантовой криптографии.

Это не рядовое обновление безопасности: OpenSSH 10.3 меняет поведение сертификатов, ужесточает валидацию и предупреждает о необходимости перехода на постквантовые алгоритмы обмена ключами.

Ключевые выводы
  • OpenSSH 10.3 (релиз 2 апреля 2026) — исправление shell injection в ssh через %-tokens в ssh_config
  • Изменено поведение сертификатов: пустая секция principals больше не работает как wildcard
  • scp в legacy-режиме больше не сохраняет setuid/setgid при скачивании файлов от root
  • Исправлена ошибка в PubkeyAcceptedAlgorithms: ECDSA-алгоритмы больше не взаимозаменяемы
  • Начало постквантовой миграции: предупреждения о не-PQC алгоритмах обмена ключами

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

Shell injection через имена пользователей

Самый серьёзный фикс: валидация метасимволов оболочки в именах пользователей, переданных через командную строку, выполнялась слишком поздно. В определённых конфигурациях — например, при использовании %u в блоке Match exec — атакующий мог выполнить произвольные shell-команды.

Обнаружил: Florian Kohnhäuser. Разработчики OpenSSH напоминают: не стоит напрямую передавать пользовательский ввод в командную строку ssh.

Ошибка в principals сертификатов

До 10.3 сертификат с пустой секцией principals работал как wildcard — позволял аутентификацию от имени любого пользователя, доверяющего CA через authorized_keys. Если CA случайно выпускал такой сертификат — вместо бесполезности он давал максимальный доступ.

Теперь: пустая секция principals не совпадает ни с одним principal. Также исправлена обработка wildcard-символов в principals сертификатов.

setuid/setgid в scp

При скачивании файлов через scp -O (legacy mode) от root без флага -p — setuid/setgid биты не очищались. Баг существовал с оригинальной программы rcp из Berkeley.

ECDSA: алгоритмы больше не взаимозаменяемы

Если в PubkeyAcceptedAlgorithms указан один ECDSA-алгоритм (например, ecdsa-sha2-nistp384), другие ECDSA-алгоритмы тоже принимались. Теперь каждый алгоритм проверяется строго по списку.

Потенциально несовместимые изменения

  • Rekeying обязателен. Убрана совместимость с реализациями SSH, которые не поддерживают rekeying. Такие соединения теперь будут разрываться при необходимости обновить ключи сессии
  • ProxyJump валидирует имена. Параметры -J и ProxyJump из командной строки теперь проверяют имена пользователей и хостов на метасимволы. Это предотвращает shell injection при прямом пробросе пользовательского ввода

Постквантовая миграция

OpenSSH 10.3 начинает предупреждать о соединениях, использующих не-постквантовые алгоритмы обмена ключами. Это не блокировка — пока только предупреждение в логах — но сигнал индустрии: миграция на PQC-алгоритмы должна начаться уже сейчас.

Контекст: Cloudflare нацелился на полную постквантовую безопасность к 2029 году. Filippo Valsorda, ведущий криптограф Go, считает, что риск появления криптографически значимых квантовых компьютеров в ближайшие годы достаточно высок, чтобы действовать.

Проверить, какие алгоритмы используют ваши соединения:

			ssh -v user@host 2>&1 | grep 'kex:'
		

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

			# Debian/Ubuntu
sudo apt update && sudo apt install openssh-server openssh-client

# RHEL/CentOS/Fedora
sudo dnf update openssh

# Проверить версию
ssh -V
		
Часто задаваемые вопросы
1
Нужно ли обновляться, если я не использую AuthZ сертификаты?

Да. Shell injection через имена пользователей и ошибка в ECDSA-алгоритмах затрагивают стандартные конфигурации SSH. Обновление рекомендуется для всех.

2
Что значат предупреждения о постквантовых алгоритмах?

OpenSSH 10.3 предупреждает, если обмен ключами использует алгоритмы, уязвимые для квантовых компьютеров (RSA, ECDH). Пока это только логи, но в будущих версиях могут появиться более строгие ограничения. Рекомендуется начать планирование миграции на ML-KEM и подобные PQC-алгоритмы.

3
Могут ли обновления сломать существующие подключения?

Да, если удалённая сторона не поддерживает rekeying — соединение теперь разорвётся. Также проверки ProxyJump могут сломать скрипты, которые передают непроверенный ввод в параметр -J. Протестируйте на staging.

4
Как долго ждать постквантовых алгоритмов в SSH?

OpenSSH уже поддерживает гибридный ML-KEM (Kyber) обмен ключами. Он включён по умолчанию в современных конфигурациях. Проверьте: ssh -Q kex — если в списке есть mlkem, вы уже защищены.

Выводы

OpenSSH 10.3 — важный релиз: не только закрывает реальные уязвимости (shell injection, ошибки сертификатов), но и начинает подготовку экосистемы к постквантовому будущему. Обновитесь и проверьте, какие алгоритмы используют ваши SSH-соединения.