Перейти к содержимому

SSH принимал любой пароль длиной 257 байт. Вот почему

SynapByte

0:00 / 0:00

SSH принимал любой пароль длиной 257 байт. Вот почему

21 просмотр · 10 ч назад
SynapByte
800 подписчиков
21 просмотр · 10 ч назад
На некоторых серверах Linux любой пароль длиной от 257 до 1024 байт позволял войти в учетную запись, у которой вообще не было пароля. В этом видео показано, как этот единственный пароль, введенный с клавиатуры, срабатывает при выполнении одной операции strcmp(), и точно показано, как ошибка musl crypt() ("*") совпала с заблокированной теневой записью ("*"). Попутно вы увидите, как Linux на самом деле хранит пароли (/etc/shadow, соль $6$ и хеш, 5000 раундов), как sshd проверяет вход без PAM, почему sshd заимствует соль у другой учетной записи (ошибка синхронизации 2016 года) и что изменилось в OpenSSH 10.6p2. Вы также узнаете, что нужно делать: обновить и перезапустить sshd или отключить вход по паролю и использовать ключи. Кого затрагивает уязвимость: sshd, собранный или запущенный без PAM на основе musl libc (например, стандартный openssh-server Alpine), с включенной аутентификацией по паролю, учетная запись, у которой поле shadow равно "*", и другая учетная запись с хешем $5$/$6$. Системы glibc и sshd с включенной PAM не затронуты. На момент публикации уведомления уязвимость CVE не была присвоена. Разделы 0:00 - Невозможный вход в систему 0:30 - Сервер Прии 0:55 - Внутри /etc/shadow: соль + хеш 1:40 - Как sshd проверяет вход в систему (crypt + strcmp) 2:14 - Учетная запись Asterisk 2:46 - Заимствование соли (ошибка синхронизации 2016 года) 3:25 - криптографический модуль musl: ограничение в 256 байт и "*" при ошибке 3:58 - Коллизия: "*" равно "*" 4:35 - Карта VOID (внутриполосная сигнализация) 5:06 - Предупреждение 2016 года 5:46 - Исправление: 10.6p2, перезапуск sshd, использование ключей 6:25 - Что на самом деле сломалось Источники Примечания к выпуску OpenSSH 10.6p2 (05.11.2026): https://www.openssh.org/releasenotes.... Исправление OpenSSH: https://github.com/openssh/openssh-po... Рекомендации по безопасности Alpine Linux (05.11.2026): https://alpinelinux.org/posts/2026-11... Статья о sshhole (Озгюн Кюльтекин, Уэйкфилд): https://sshhole.com OpenSSH auth-passwd.c: https://github.com/openssh/openssh-po... OpenSSH xcrypt.c (pick_salt): https://github.com/openssh/openssh-po... CVE-2016-6210 (старая ошибка синхронизации): https://nvd.nist.gov/vuln/detail/CVE-... musl crypt_sha512.c: https://git.musl-libc.org/cgit/musl/t... коммит musl "make crypt return an unmatchable hash instead of NULL on failure" (2012): https://git.musl-libc.org/cgit/musl/c... список рассылки musl, Solar Designer (27.03.2016): https://www.openwall.com/lists/musl/2... Страница руководства shadow(5): https://man7.org/linux/man-pages/man5... Страница руководства crypt(3): https://man7.org/linux/man-pages/man3... libxcrypt crypt(3)/crypt(5): https://github.com/besser82/libxcrypt... Спецификация SHA-crypt (Ульрих Дреппер): https://www.akkadia.org/drepper/SHA-c... Fedora 35 yescrypt default: https://fedoraproject.org/wiki/Change... Debian 11 yescrypt default: https://lists.debian.org/debian-doc/2... Музыка: "Agoraphobia" от HoliznaCC0 (CC0, Free Music Archive) #SSH #Linux #CyberSecurity Подпишитесь на SynapByte. Где каждая концепция понятна. SSH Linux Кибербезопасность OpenSSH AlpineLinux Проектирование систем