В OpenSSH 10.4 исправлены многочисленные уязвимости в SSH, SCP и SFTP
Теперь доступна версия OpenSSH 10.4 с исправлениями для системы безопасности, более строгой обработкой протокола и начальной поддержкой постквантовой криптографии. Одно из исправлений устраняет sftp проблему, из-за которой вредоносный сервер мог приводить к загрузке файлов в нежелательные места при использовании таких команд, как “sftp host:/path .”.
Соответствующее исправление появится в версии scp, где OpenSSH теперь не позволит вредоносному серверу записывать файлы в родительский каталог целевого каталога при копировании файлов между двумя удаленными хранилищами.
Еще одно исправление касается реализации внутреннего протокола SFTP в sshd. Это не сервер SFTP по умолчанию, но при его использовании длинные командные строки ранее молча обрезались после девятого аргумента. Это могло привести к проблемам с безопасностью, если бы в качестве десятого аргумента или позже указывалась важная опция, поскольку она просто игнорировалась бы.
В OpenSSH 10.4 также устранена потенциальная проблема отказа в обслуживании до аутентификации в sshd при включенной GSSAPIAuthentication. Хотя эта функция по умолчанию отключена, исправление важно для сред, использующих аутентификацию на основе GSSAPI.
Кроме того, в этом релизе исправлено несколько случаев, когда sshd не обеспечивала минимальную задержку аутентификации, как предполагалось, а также устранена возможная ошибка «использование после освобождения памяти» на стороне клиента в ssh, если сервер меняет свой ключ хоста во время повторного обмена ключами.
Помимо исправлений, связанных с безопасностью, в OpenSSH 10.4 ужесточены требования к поведению транспортного протокола SSH. Теперь ssh и sshd отключают узлы, которые отправляют сообщения, не связанные с обменом ключами, во время повторного обмена ключами после аутентификации.
Раньше злоумышленники могли отправлять эти сообщения без каких-либо последствий, что приводило к нерациональному использованию памяти. Имейте в виду, что несовместимые реализации SSH, которые не ограничивают количество сообщений во время обмена ключами, теперь могут быть отключены.
Администраторам также стоит обратить внимание на пару потенциально несовместимых изменений. Во-первых, команда “sshd -G,” которая выводит действующую конфигурацию сервера, теперь печатает названия директив в смешанном регистре, например PubkeyAuthentication, а не только в нижнем. Это может повлиять на скрипты, которые анализируют ее вывод.
Во-вторых, в системах Linux, использующих песочницу seccomp, ошибки при включении SECCOMP или NO_NEW_PRIVS теперь приводят к фатальным последствиям. Ранее sshd записывал ошибку в журнал и продолжал работу. В системах без этих функций песочницу следует отключать при настройке.
С точки зрения функциональности, самое интересное дополнение в OpenSSH 10.4 — экспериментальная поддержка составной постквантовой схемы подписи, объединяющей ML-DSA 44 и Ed25519. Однако по умолчанию эта функция отключена. Пользователи, которые хотят ее протестировать, должны явно указать ее в параметрах HostKeyAlgorithms или PubkeyAcceptedAlgorithms.
В OpenSSH также заменили сопоставление с подстановочными знаками на недетерминированный конечный автомат, который позволяет избежать экспоненциального роста в худшем случае, характерного для предыдущего метода.
Как и ожидалось, в этом выпуске представлен длинный список исправлений ошибок. Среди них — исправления для ssh-agent расширенных запросов, улучшенная обработка неподдерживаемых типов резидентных ключей FIDO, более строгая проверка состояния транспорта, передаваемого между sshd подпроцессами с разделением привилегий, исправления для чтения за пределами буфера в sftp, а также улучшения в работе с некорректными списками шифров или MAC в файлах конфигурации.
Дополнительные изменения касаются сбоев, утечек памяти, анализа конфигурации, обработки каналов X11, обработки ключей хоста PKCS#11 и различных обновлений, повышающих переносимость.
Дополнительные сведения см. в примечаниях к выпуску.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.