OpenSSH: уязвимость в ssh-add позволяет обойти ограничения ключей
Что случилось
В OpenSSH найдена уязвимость в утилите ssh-add. При добавлении ключей со смарт-карт (PKCS#11) в агент SSH ключи сохраняются без заданных ограничений destination constraints. Эти ограничения должны гарантировать, что ключ можно использовать только для конкретного промежуточного хоста, а не для произвольного назначения.
Проблема связана с некорректной обработкой атрибутов расширения в PKCS#11. В результате злоумышленник, скомпрометировавший промежуточный сервер, может использовать перенаправленный ключ для доступа к другим узлам в сети — там, где должен был сработать принцип минимальных привилегий.
Кого касается
- Серверы с OpenSSH 8.9–9.2 (версии до 8.9 не затронуты)
- Использование смарт-карт или HSM для хранения SSH-ключей
- Применение многоступенчатых подключений (jump hosts) с ограниченными ключами
- Инфраструктуры, где
ssh-add -hили аналогичные механизмы ограничения маршрута считаются критически важными
Если вы не используете смарт-карты для SSH или работаете с обычными ключами на диске — уязвимость вас не затрагивает.
Что делать
Проверить версию:
ssh -V
Если вывод показывает версию от 8.9 до 9.2 — требуется обновление.
Обновить пакет:
- Debian/Ubuntu:
apt update && apt upgrade openssh-client - RHEL/CentOS/Alma/Rocky:
yum update openssh-clientsилиdnf update openssh-clients - Alpine:
apk upgrade openssh-client - Arch:
pacman -Syu openssh
Убедитесь, что после обновления версия не ниже 9.3.
Обходной путь (если обновление невозможно):
- Не используйте
ssh-addдля ключей смарт-карт в многоступенчатых сценариях - Применяйте прямое указание ключа через
ssh -iилиIdentityFileв конфигурации без агента - Для критичных инфраструктур рассмотрите временный переход на ключи, хранящиеся в файлах, с корректными ограничениями в
authorized_keys
После обновления перезапустите сессии SSH и заново добавьте ключи в агент при необходимости.