Раскрыта уязвимость sshhole в OpenSSH на базе musl Linux — доступ к учётным записям, не защищённым паролем

Раскрыта критическая уязвимость под названием sshhole в OpenSSH на системах с библиотекой musl Linux (musl-based Linux, используемой в Alpine, OpenWrt, Buildroot, Yocto, а также во множестве образов Docker, которые вы, возможно, скачивали), которая с 2016 года позволяла получить доступ к учётным записям, не защищённым паролем.

Учётные записи, которые в принципе не должны требовать пароля (например, root, пользователь для развёртывания, использующий только SSH-ключи, пользователи из LDAP или пользователь по умолчанию в образах Alpine для AWS и Azure), начинали принимать любой пароль, если его длина превышает 256 символов.

Затронуты ли вы этой проблемой?

  • Работает ли ваш sshd в среде с библиотекой musl (например, в Alpine, OpenWrt, Buildroot или Yocto)?

  • Не используется ли при этом PAM? (В Alpine пакет openssh‑server по умолчанию настроен без PAM; возможно, вы также явно указали UsePAM no в конфигурации).

  • Разрешён ли вход по паролю? (По умолчанию он разрешён).

  • Есть ли в системе учётная запись, у которой в качестве пароля установлен символ * (например, пользователи, использующие только ключи; пользователи из LDAP; или учетная запись root в Alpine)?

  • И есть ли при этом в системе другая учётная запись с полноценным паролем?

  • Если да, то для учётной записи с паролем * система примет любой пароль длиной от 257 до 1024 символов.

  • В официальных образах Alpine для AWS и Azure такая настройка присутствует у пользователя по умолчанию (alpine), который к тому же имеет право выполнять команды через doas без ввода пароля — фактически, это дает права суперпользователя (root).

  • Если вы используете Debian, Ubuntu, Fedora или любой другой дистрибутив с библиотекой glibc, если у вас настроен PAM, или если вы используете dropbear либо OpenSSH в реализации OpenBSD — вы в безопасности.

Вас взломали? Проверьте.

$ grep "Accepted password" /var/log/messagesNov 2 03:14:07 your-box sshd[2211]: Accepted password for alpine from 203.0.113.66 port 41822 ssh2$ grep '^alpine:' /etc/shadowalpine:*:20125:0:99999:7:::

В обновлении openssh 10.6p2 проблема устранена.

# пока нет возможности обновиться? отключите вход по паролю.$ echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-no-passwords.conf$ rc-service sshd restart

одна система на базе Debian, одна — на базе Alpine. вводите команды. всё выполняется прямо здесь, в вашем браузере; никакие данные никуда не передаютсяодна система на базе Debian, одна — на базе Alpine. вводите команды. всё выполняется прямо здесь, в вашем браузере; никакие данные никуда не передаются

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев