CVE-2022-24693
Описание
Устройства Baicells Nova436Q и Neutrino 430 с прошивкой до QRTB 2.7.8 имеют жестко закодированные учетные данные, которые легко обнаруживаются и могут использоваться удаленными злоумышленниками для аутентификации через ssh. (Учетные данные хранятся в прошивке, зашифрованные функцией crypt.)
Оценка CVSS
CVSS 9.8
Тип уязвимости
CWE-284: Некорректный контроль доступа
Производитель продукта
BaiCells
База кода затронутых продуктов
- NOVA436Q - QRTB 2.7.8 (Вероятно, все сборки до 2.9.x)
- NEUTRINO430 - QRTB 2.7.8 (Вероятно, все сборки до 2.9.x)
Затронутый компонент
Имена пользователей и пароли статичны в прошивке, зашифрованы с помощью crypt(), и поэтому их можно взломать.
Тип атаки
Удаленный
Влияние: выполнение кода
True
Влияние: отказ в обслуживании
True
Влияние: повышение привилегий
True
Влияние: раскрытие информации
True
Векторы атаки
Из коробки прошивка содержит статические имена пользователей и пароли.
Ссылки
Подтвердил ли производитель уязвимость?
Да: https://community.na.baicells.com/t/important-security-notice-for-nova-436q-430-neutrino-430/1729
Обнаружитель
Luke Jenkins
Хронология
- 2021-12-07 - Письмо Baicells с просьбой опубликовать политику раскрытия уязвимостей.
- 2021-12-08 - Обсуждение по электронной почте с Baicells, включая черновик политики раскрытия уязвимостей и источник PGP-ключей для контактного лица.
- 2021-12-08 - Зашифрованное PGP письмо отправлено контактному лицу с подробностями уязвимости.
- 2022-02-08 - Получено уведомление от Baicells о том, что они исправили проблему в предстоящем выпуске программного обеспечения QRTB 2.9.
- 2022-03-22 - Baicells просит не включать пароли в открытом виде на эту страницу.
- 2022-03-23 - Ответ по электронной почте Baicells с указанием, что отсутствие пароля создаст лишь иллюзию безопасности.
- 2022-03-28 - Baicells публикует версию программного обеспечения QRTB 2.9.10 с исправлением этой проблемы.
- 2022-03-28 - Эта страница, которая была пустой, изменена и включает подробности уязвимости.
- 2022-03-28 - Запрос отправлен в Mitre с просьбой опубликовать CVE-2022-24693.
- 2022-03-28 - Письмо от Baicells с просьбой удалить пароли в открытом виде с этой страницы.
- 2022-03-28 - Ответ Baicells с отказом в их просьбе на основе сроков раскрытия.
- 2022-03-29 - Уведомление по электронной почте от команды назначения CVE Mitre о том, что запрос на публикацию CVE-2022-24693 получен и обработан.
- 2022-03-29 - Звонок от руководства UETN с просьбой удовлетворить запрос Baicells.
- 2022-03-29 - Письмо отправлено Baicells с уведомлением о том, что их запрос на удаление паролей с главной страницы будет выполнен, но пароли по-прежнему будут доступны в истории git и через archive.org.
- 2022-03-29 - Пароли в открытом виде скрыты на этой странице.
- 2022-03-30 - Письмо от Baicells о том, что они размещают уведомление об этой уязвимости на своем веб-сайте и начинают уведомлять клиентов.
- 2022-03-30 - Письмо от Baicells, отправленное в список рассылки клиентов, с предупреждением об уязвимости безопасности и ссылками на это уведомление и исправленное программное обеспечение.
Подробности:
- Пароль пользователя
admin — Baicells, хранится с использованием алгоритма Unix crypt() DES.
- Незадокументированный и ненастраиваемый пользователь
anonymous с паролем pqmz325, хранится с использованием алгоритма Unix crypt() DES.
- Незадокументированный, ненастраиваемый (но, по-видимому, непригодный для ssh) пользователь
root с паролем qpa;10@), хранится с использованием алгоритма Unix crypt() DES. Производитель утверждает, что он уникален для каждого устройства, но это не подтверждено.
Как воспроизвести
- Загрузите прошивку с веб-сайта производителя, вход не требуется. Как клиент, я это люблю; но с точки зрения безопасности важно понимать, насколько легко злоумышленнику получить прошивку.
- Запустите binwalk на образе прошивки — инструмент, который извлекает все файлы, содержащиеся в прошивке. Получите имена пользователей и хеши паролей из /etc/passwd и /etc/shadow.
- Используйте hashcat для взлома хешей. В дополнение к тому, что они разработаны с учетом процессоров старше 30 лет, функция Unix crypt(), "защищающая" эти пароли, также ограничивает их 8 символами. Пароли вскрываются.
- Учетные данные анонимного пользователя можно использовать для входа по ssh на устройство. Избавлю вас от необходимости сканирования портов или просмотра файлов конфигурации из шага 2: dropbear прослушивает порт 27149.
Примечания
Это мой первый опубликованный CVE, поэтому, пожалуйста, простите (или отправьте pull request) любые ошибки.
Спасибо ребятам из UETN за помощь и поддержку в этом.
Также спасибо сотрудникам Baicells NA за сотрудничество со мной в исправлении этой проблемы.