Опубліковано випуск OpenSSH 10.6, відкритої реалізації клієнта та сервера для роботи за протоколами SSH 2.0 та SFTP. Усунено проблеми з безпекою, більшість з яких виявлено при аналізі коду з використанням AI-інструментів (CVE-ідентифікатори не призначені):
- Уразливість у sftp, що дозволяє записати файл за межі цільової директорії при зверненні до підконтрольного зловмисника сервера.
- Дві вразливості реалізації GSSAPI в sshd, викликані збереженням стану між різними спробами аутентифікації. Облікові дані GSSAPI могли зберігатися після невдалої спроби автентифікації та використовуватися після успішної спроби автентифікації. Проблеми виявляються при включенні налаштування GSSAPIAuthentication.
- У sshd і ssh відключена підтримка стиснення LZ77 через можливість проведення атаки по сторонніх каналах, що дозволяє відновити вміст з іншого сеансу при підключенні через загальне з жертвою мультиплексоване з'єднання, користуючись тим, що контрольовані зловмисником вхідні дані впливають на загальну довжину передаваних рядки, що повторюються, на посилання в загальному для всіх каналів буфері).
- В утиліті ssh заборонено використовувати символи '$' і '\' в іменах користувачів, введених у командному рядку, так з їх допомогою можна було організувати виконання коду під час встановлення імен у директиви ProxyCommand і Match exec, зазначені в налаштуваннях.
- У ssh-keygen виправлено некоректне оброблення літнього часу, що призводило до зсуву терміну дії сертифікатів на 1 годину.
- З метою блокування створення zip-бомб у sshd та ssh додано перевірку перевищення максимального розміру пакета при розпакуванні даних.
- У sshd вирішена проблема, що дозволила обійти обмеження ключового слова "restrict" у файлі authorized_keys, яке не застосовувалося до тунелів (PermitTunnel).
- У sshd усунено некоректний розбір опції «none» усередині блоків Match, яка в деяких директивах, таких як AuthorizedPrincipalsFile, інтерпретувалася як ім'я файлу, а не ознака відключення директиви.
- У sshd усунуто відсутність скидання root-привілеїв на платформах, які не підтримують передачу файлових дескрипторів і вимагають виділення PTY прав root. Проблема проявляється в QNX 6, SCO OpenServer 5 і при складанні з опцією disable-fd-passing.
Не пов'язані з уразливістю зміни:
- Включено підтримку гібридного криптоалгоритму ssh-mldsa44-ed25519, стійкого для підбору на квантових комп'ютерах.
- У sshd_config реалізована та включена за замовчуванням опція WarnWeakCrypto для керування виведенням попереджень про встановлення з'єднання з використанням алгоритмів узгодження ключів, які не стійкі до підбору на квантовому комп'ютері.
- У ssh-keygen та ssh-add реалізовано перевірку політики credProtect в облікових даних для виконання вимог верифікації (PIN або біометрія) перед доступом до резидентних ключів на токенах FIDO.
- У ssh-add доданий прапор "-P" для пропуску необов'язкового введення PIN-коду для токенів FIDO та PKCS#11.
- У ssh у команді ~I реалізовано виведення інформації про версії на локальній та віддаленій системах.
- У sftp до команди mkdir/lmkdir доданий прапор '-p' для створення каталогів за потреби.
- У ssh-keygen доданий режим "hexdump" для експорту ключів у формі шістнадцяткових дампів (наприклад, для вставки в документацію).
- У ssh та sshd у директиві ChannelTimeout дозволено вказівку таймаутів з точністю до часткою секунди.
- У sshd додана опція AgentSocketPath для вказівки шляху до $SSH_AUTH_SOCK при прокиданні агента (наприклад, user:.ssh/agent для підкаталогів $HOME і shared:/tmp для загальних каталогів).
- У ssh-agent доданий прапор "-A" для вказівки каталогів із сокетами агента, в якому допустимо вказівку префіксів "user:" та "shared:" як в опції AgentSocketPath.
- У sshd перевірка відкритих ключів відокремлена від спроб автентифікації. Додана опція «PubkeyOptions max-pk-ok:nnnn» для налаштування числа спроб перевірки відкритих ключів (за замовчуванням 6), після яких з'єднання буде розірвано за лімітом MaxAuthTries.
- У ssh і sshd в опцію TCPKeepAlive додано підтримку значення «all», що включає відправлення keepalive-пакетів не тільки для основного з'єднання, але і для прокинутих через нього з'єднань.
Джерело: opennet.ru
