Специалисты WatchTowr Labs рассказали, что провели обширный аудит безопасности операционной системы Qnap QTS (QuTSCLoud и QTS Hero), используемой в NAS компании. В результате были обнаружены 15 уязвимостей, одиннадцать из которых до сих пор остаются неисправленными.
Уязвимости
Исследователи пишут, что вынуждены обнародовать информацию о проблемах, так как несколько месяцев ждали патчей Qnap, но исправления так и не вышли. Так, только 4 из 15 уязвимостей в итоге получили исправления, хотя эксперты предупредили компанию о багах в период с декабря 2023 года по январь 2024 года.
Из оставшихся 11 проблем только 6 были проверены и подтверждены производителем, получив идентификаторы CVE. Остальные 5 багов либо все еще находятся под эмбарго, либо не имеют доступных исправлений, и в этом случае пользователям рекомендуется временно отключить устройства и не пользоваться ими до выхода патчей.
Одной из наиболее опасных проблем, найденной исследователями WatchTowr Labs, является CVE-2024-27130. Это уязвимость переполнения буфера стека, связанная с функцией No_Support_ACL в файле share.cgi, которая позволяет злоумышленнику осуществить удаленное выполнение кода при соблюдении определенных условий.
К своему отчету специалисты приложили PoC-эксплоит для CVE-2024-27130.
«Мы придерживаемся стандартного для отрасли 90-дневного срока, в течение которого производители должны отреагировать на проблемы. Обычно мы охотно предоставляем продление этого срока в особых случаях, и Qnap уже получила несколько таких отсрочек для исправления ситуации, — пишут исследователи. — В случаях, когда существует явный фактор, препятствующий исправлению ситуации (как, например, в случае с WT-2023-0050), мы продлеваем эмбарго еще больше, чтобы у производителя было достаточно времени для анализа проблемы, выпуска исправлений, а у конечных пользователей — для их применения. Однако всегда должен наступать момент, когда в интересах интернет-сообщества необходимо публично обнародовать информацию о проблемах».
Другие ошибки, обнаруженные исследователями, оказались связаны с выполнением кода, переполнением буфера, повреждением памяти, обходом аутентификации и XSS:
- CVE-2023-50361 — небезопасное использование sprintf в getQpkgDir, вызываемом из userConfig.cgi;
- CVE-2023-50362 — небезопасное использование функций SQLite, доступных через параметр addPersonalSmtp в userConfig.cgi;
- CVE-2023-50363 — отсутствие аутентификации позволяет отключить двухфакторную аутентификацию для произвольных пользователей;
- CVE-2023-50364 — переполнение хипа через длинное имя каталога при просмотре списка файлов функцией get_dirs в privWizard.cgi;
- CVE-2024-21902 — отсутствие аутентификации позволяет всем пользователям просматривать и очищать системные журналы, а также выполнять дополнительные действия;
- CVE-2024-27127 — double-free проблема в utilRequest.cgi через функцию delete_share;
- CVE-2024-27128 — переполнение стека в функции check_email, доступное через действия share_file и send_share_mail в utilRequest.cgi;
- CVE-2024-27129 — небезопасное использование strcpy в функции get_tree файла utilRequest.cgi.
- CVE-2024-27130 — небезопасное использование strcpy в No_Support_ACL, доступной в функции get_file_size файла share.cgi;
- CVE-2024-27131 — спуфинг журналов через x-forwarded-for позволяет вызвать загрузку записей якобы из произвольного источника;
- WT-2023-0050 — в связи со сложностью проблемы на нее наложено расширенное эмбарго;
- WT-2024-0004 — хранимая XSS через удаленные сообщения syslog.
- WT-2024-0005 — хранимая XSS через удаленное обнаружение устройств;
- WT-2024-0006 — отсутствие ограничения скорости в аутентификационном API;
- WT-2024-00XX — проблема находится под 90-дневным эмбарго в соответствии с программой раскрытия уязвимостей.
Перечисленные проблемы затрагивают QTS, QuTSCLoud (версия QTS, оптимизированная для работы с виртуальными машинами) и QTS hero (специализированная версию, ориентированная на высокую производительность).
Пока специалисты QNAP устранили только уязвимости CVE-2023-50361, CVE-2023-50362, CVE-2023-50363 и CVE-2023-50364 в рамках обновления, выпущенного в апреле 2024 года. То есть баги исправлены в версиях QTS 5.1.6.2722 build 20240402 и более поздних, а также QuTS hero h5.1.6.2734 build 20240414 и более поздних.
Эксплоит
Как уже было сказано выше, CVE-2024-27130 представляет собой уязвимость, связанную с небезопасным использованием функции strcpy в функции No_Support_ACL. Эта функция используется в запросе get_file_size в скрипте share.cgi, который применяется при обмене медиафайлами с внешними пользователями.
Исследователи рассказывают, что злоумышленник может составить вредоносный запрос со специально подготовленным параметром name, что вызовет переполнение буфера и приведет к удаленному выполнению кода.
Однако для эксплуатации CVE-2024-27130 злоумышленнику необходим корректный параметр ssid, который генерируется, когда пользователь NAS предоставляет общий доступ к файлу со своего устройства. Этот параметр включается в URL-адрес ссылки share, созданной на устройстве, поэтому злоумышленнику придется прибегнуть к социальной инженерии, чтобы получить к нему доступ. Однако, если пользователи делятся такими ссылками в интернете, это позволяет индексировать их и извлекать даже из поиска Google.
Специалисты опубликовали эксплоит для этой проблемы на GitHub и демонстрируют, как составить полезную нагрузку, создающую учетную запись watchtowr на устройстве QNAP и добавляющую ее в sudoers для получения повышенных привилегий.