← На главную

OpenSSH 10.4: закрыли уязвимости и добавили постквантовую подпись

06.07.2026 22:32 · hackernews

Вышел OpenSSH 10.4 — релиз, который закрывает сразу несколько уязвимостей и добавляет экспериментальную поддержку постквантовой криптографии. Обновление доступно на зеркалах проекта.

Самая опасная проблема — в sftp: при загрузке файлов через sftp host:/path . злой сервер мог сохранить файл совсем не туда, куда ожидал пользователь. Это нашёл сканер Swival Security Scanner. Он же обнаружил баг в scp: при копировании между двумя удалёнными хостами сервер мог записать файлы в родительскую директорию вместо целевой. В sshd починили молчаливое обрезание длинных командных строк в internal-sftp (режим по умолчанию не включён) — опции начиная с десятой просто игнорировались. Ещё один баг: DisableForwarding=yes не переопределял PermitTunnel=yes, хотя так было задумано в документации. Если включена GSSAPIAuthentication, была возможна DoS-атака до аутентификации — её не ограничивал MaxAuthTries, но срезали PerSourcePenalties. Также исправили несколько мест, где не соблюдалась минимальная задержка аутентификации, и уязвимость use-after-free в клиенте при смене host key сервера во время пересогласования ключей.

Главная новая возможность — экспериментальная гибридная постквантовая подпись ML-DSA 44 + Ed25519 по черновику draft-miller-sshm-mldsa44-ed25519-composite-sigs. Включена опционально: надо вручную добавить в HostKeyAlgorithms и PubkeyAcceptedAlgorithms. Ключи создаются через ssh-keygen -t mldsa44-ed25519. Ещё заменили старый pattern matcher на NFA-реализацию — она не страдает от экспоненциального замедления на вредоносных паттернах.

Из несовместимых изменений: на Linux с seccomp-песочницей теперь фатально, если не удаётся включить SECCOMP или NO_NEW_PRIVS — раньше работа продолжалась с ошибкой в логе. Транспортный протокол стал строже: если пир шлёт не-KEX сообщения во время повторного обмена ключами после аутентификации, соединение рвётся (раньше такое буферизировалось до заполнения памяти).

В портативной версии подправили много мелочей: синхронизировали fmt_scaled.c с OpenBSD, убрали дублирующийся sandbox entry, исправили memory leaks и предупреждения на Android. Полный список изменений — в релизных заметках.

Читать оригинал →