В OpenSSH нашли серьезную ошибку: для входа в Linux иногда хватало любого пароля длиннее 256 символов. Даже если вход по паролю был запрещен.
В некоторых случаях так можно было получить права root и полный контроль над сервером. Уязвимость существовала около 10 лет.
Читают прямо сейчас:
SSH-подключение: что это и как использовать — разбираем подключение к серверам, авторизацию и работу с ключами.
В Linux и FreeBSD нашли десятки опасных уязвимостей для захвата root и взлома VM — какие ошибки позволяют получить права администратора и захватить систему.
Кибербезопасность: какие бывают уязвимости и как от них защититься — разбираем опасные ошибки, способы атак и защиту систем.
Как это работало
В Linux символ * вместо пароля означает, что войти с паролем нельзя. Но библиотека musl использовала тот же символ при ошибке проверки слишком длинного пароля.
OpenSSH не замечал подвоха: видел два одинаковых символа и разрешал вход. Так случайное совпадение в коде превратилось в опасную дыру.
Кто оказался под угрозой
Ошибка затрагивала не все системы Linux, а только определенные конфигурации OpenSSH с библиотекой musl и без PAM.
Для взлома требовалось несколько условий: разрешенный вход по паролю, учетная запись с символом * вместо пароля и хотя бы один другой пользователь с обычным паролем.
Если все совпадало, подходила любая строка длиной от 257 до 1024 байт.
Особенно опасной ошибка оказалась для облачных образов Alpine Linux в AWS и Azure. Там можно было войти под пользователем alpine, а затем получить права root без дополнительного пароля.
Как исправить
Уязвимость закрыли в OpenSSH 10.6p2. Пользователям Alpine Linux достаточно обновить пакет командой apk upgrade openssh.
Если обновиться пока нельзя, стоит отключить вход по паролю через параметр PasswordAuthentication no, предварительно проверив работу SSH-ключей.
Обнаружил ошибку исследователь ozgun. Он протестировал 12 сборок OpenSSH и около 17 600 попыток входа, прежде чем нашел опасное сочетание настроек.
Скидка на все курсы Практикума
Раз вы дочитали эту новость до конца, с технологиями у вас всё в порядке. А если давно присматривались к разработке, аналитике, нейросетям, тестированию или кибербезопасности, сейчас туда можно зайти дешевле.
Промокод KOD (можно просто нажать) даст скидку на любой платный курс! А если пока не готовы покупать курс, у Практикума есть бесплатные вводные части.
