Опубликован релиз OpenSSH 10.1, отворена реализация клиента и сервера за работа по протоколите SSH 2.0 и SFTP.
Основни промени:
- Проблема с безопасността, позволяваща на атакуваща страна да внедри shell-команди чрез манипулации със специални символи в името на потребителя или URI, които могат да бъдат изпълнени при стартиране на команда, зададена чрез настройката ‘ProxyCommand’ и съдържаща заместването ‘%u’. Проблемът засяга само системи, допускащи при стартиране на ssh заместването на имена на потребители или URI, получени от ненадеждни източници.
За блокиране на подобни атаки е забранено използването на управляващи символи в имената на потребителите, задавани при стартиране в командния ред или подставяни в настройките чрез %-последователности. Също така е забранено използването на нулев символ (‘\0’) в URI ssh://. Изключение се прави само за имена, зададени в конфигурационния файл (предполага се, че този конфигурационен файл е надежден).
- В утилитите ssh и ssh-agent е добавена поддръжка на ключове ed25519, съхранявани в токени PKCS#11.
- В конфигурационния файл ssh_config е добавена настройка RefuseConnection, при обработката на която в активната секция се извършва приключване на процеса с извеждане на съобщение за грешка без опити за установяване на връзка. Match host foo RefuseConnection ‘хост foo вече не се използва, свържете се с хост bar’
- В ssh и sshd са добавени обработчици на сигнал SIGINFO за записване в лог информация за сесията и активния канал.
- В sshd при отказ на удостоверяване на потребител по сертификат е осигурено извеждане в лог не само на причината за блокиране на входа, но и на изчерпателна информация за идентификация на проблемния сертификат.
- В sshd е добавена проверка на номера на дисплея X11, спрямо отместването, посочено в директивата X11DisplayOffset.
- В набора unit-тестове са добавени възможности за измерване на производителността, активирани при стартиране ‘make UNITTEST_BENCHMARK=yes’ в OpenBSD или ‘make unit-bench’ в останалите системи.
Промени, потенциално нарушаващи обратната съвместимост:
- В ssh е добавен извеждане на предупреждение при използване на алгоритъм за договаряне на ключове, който не е устойчив на подбор от квантов компютър. Предупреждението е добавено заради риска от извършване на атаки в бъдеще, използвайки предварително запазени дампи на трафика. За да деактивирате предупреждението, в ssh_config е добавена опцията WarnWeakCrypto. Match host unsafe.example.com WarnWeakCrypto no
- В ssh и sshd значително е променено обработването на параметрите за качество на услугата DSCP (IPQoS). За интерактивен трафик сега по подразбиране се задава клас EF (Expedited Forwarding) за по-приоритетна обработка в безжични мрежи. За неинтерактивен трафик се задава клас, използван по подразбиране в операционната система. Класът на трафика може да бъде променен чрез настройката IPQoS в ssh_config и sshd_config. Параметрите ToS (type-of-service) за IPv4 в директивата IPQoS са обявени за остарели (вместо ToS идва DSCP).
- В ssh-add при добавяне на сертификат в ssh-agent е реализирано задаване на времето за живот на сертификата на стойност, която е 5 минути по-дълга от срока на действие на сертификата (за автоматично премахване на изтеклия сертификат). За да деактивирате това поведение в ssh-add, е добавена опцията “-N”.
- Премахната е поддръжката на ключове XMSS, която беше обозначена като експериментална и никога не беше включена по подразбиране.
- Unix-сокетите, създавани от процесите ssh-agent и sshd, са преместени от директорията /tmp в ~/.ssh/agent, което гарантира невъзможността за достъп чрез тези сокети от изолирани процеси, за които е ограничен достъпът до файловата система, но е отворен достъпът до /tmp.
В бъдещите версии ще бъдат обявени за остарели DNS-записите SHA1 SSHFP поради проблеми с надеждността на хеш-функцията SHA1. Тези записи ще бъдат игнорирани, а командата “ssh-keygen -r” ще генерира само записи SHA256 SSHFP.
Източник: opennet.ru
