Команда OpenSSH выпустила срочный патч OpenSSH 10.6p2, устраняющий опасную уязвимость (CVE пока не присвоен) с названием SSHole, которая даёт возможность обходить аутентификацию — об этом стало известно от Opennet.ru.
Проблему выявил независимый специалист по информационной безопасности Озгюн Кюльтекин (Özgün Kültekin). Она проявляется при совместной работе OpenSSH и библиотеки musl libc: в определённой конфигурации Linux-системы появляется возможность войти в учётную запись с выключенной парольной аутентификацией, передав по SSH пароль размером от 257 до 1024 байт. Как отметил исследователь, уязвимость присутствует с 2016 года. Она касается Linux-платформ, которые применяют библиотеку musl, но обходятся без PAM, — например, OpenWRT, Alpine, Buildroot и Yocto.
Источник изображения: sshhole.com
В 2016 году команда OpenSSH устраняла уязвимость CVE-2016-6210, позволявшую вычислять существующие учётные записи по времени отклика сервера. После установки патча sshd начал хешировать пароль даже для аккаунтов, у которых вход по паролю отключён, чтобы злоумышленник не мог определить имена пользователей по разнице во времени ответа.
Однако затем при использовании SHA-256 crypt или SHA-512 crypt функция crypt() перестала обрабатывать пароли длиннее 256 байт и стала возвращать * как индикатор ошибки. Это же значение может храниться в /etc/shadow для учётной записи с отключённой парольной аутентификацией. В итоге sshd сравнивает полученную * со значением * в /etc/shadow и расценивает проверку как успешную.
Примечательно и то, что изначально в официальных Docker-образах на базе Alpine с 2015 года root имел пустой пароль, а после обнаружения этого факта вместо хеша пароля был установлен символ "!". Но так как это блокировало вход по SSH-ключам, с 2022 года символ блокировки входа по паролю заменили на "*".
По словам разработчика, атака возможна при соблюдении ряда условий:
- OpenSSH функционирует без использования PAM;
- активирована аутентификация по паролю (PasswordAuthentication yes);
- в файле /etc/shadow для нужной учётной записи вместо хеша стоит *;
- в системе требуется хотя бы один действующий аккаунт с паролем в формате SHA-256 crypt или SHA-512 crypt ($5$ или $6$), так как sshd извлекает из его хеша соль для выполнения проверки.
Патч уже доступен в Alpine и OpenWRT. Если установить обновление по каким-либо причинам не получается, советуют выключить парольную аутентификацию (PasswordAuthentication no) и перезапустить sshd.
Если вы обнаружили ошибку — выделите её мышью и нажмите CTRL+ENTER. | Можете написать лучше? Мы всегда рады новым авторам.
Материалы по теме:
- «Группа Астра» сообщила об уязвимости ядра операционной системы Linux
- Анонсирован Microsoft Defender для настольного Linux
- Microsoft представила WSLC для работы с Linux-контейнерами в среде Windows
- Плата Banana Pi BPI-RT2 предназначена для маршрутизаторов с Wi-Fi 6
- Портфель заказов GE Vernova достиг $197 млрд на фоне роста продаж газовых турбин для ИИ ЦОД
Было интересно? Сообщите об этом Google, чтобы чаще получать ссылки на наши новости и обзоры
Источники: