Sshhole: 10 лет root принимал ЛЮБОЙ пароль длиннее 256 символов Что известно? Исследователь ozgun обнаружил, что в OpenSSH на musl-системах аккаунты, у которых в /etc/shadow стоит * (то есть вход по паролю для них запрещён) принимают ЛЮБОЙ пароль длиной длинее 256 символов! Уязвимы: Alpine Linux, OpenWrt, Buildroot, Yocto и Docker-образы на их базе. Условия уязвимости? sshd собран без PAM (в Alpine это по умолчанию), включён вход по паролю, есть аккаунт с * и хотя бы один аккаунт с реальным паролем. Особенно весело в официальных облачных образах Alpine для AWS и Azure: там дефолтный пользователь alpine — с * в shadow и беспарольным doas. То есть «любой пароль» — это сразу права root! Если у вас другие линуксы? Debian, Ubuntu, Fedora и всё на glibc вы в безопасности. Как и те, кто ходит через PAM, использует Dropbear или OpenBSD. Как так вышло? Цепочка из трёх фиксов иных проблем, создали такую ситуацию. Почему десять лет никто не замечал? Классика - дыра живёт на стыке двух компонентов, за которые отвечают разные группы исследователей. Что делать? - Обновить OpenSSH до 10.6p2. На Alpine: apk upgrade openssh. - Не можете обновиться прямо сейчас? Тогда выключите парольную аутентификацию: PasswordAuthentication no, перезапуск sshd. - Проверьте логи: успешный вход по паролю для аккаунта, у которого пароля нет и быть не должно, гарантированный признак взлома! Отдельная ирония для любителей «зачем обновляться, и так работает». Массовым баг стал в 2022-м, когда Alpine 3.16 перевёл root с "!" на "*", чиня совсем другую уязвимость, CVE-2019-5021, где у root в Docker-образах пароля вообще не было. Исправили пустой пароль - получили любой пароль. Патчинг - это штука тонкая) Подробнее: sshhole.com