Уязвимости в Realtek SDK привели к проблемам в устройствах 65 производителей
18 августа 2021 года
В компонентах Realtek SDK, который используется различными производителями беспроводных устройств в своих прошивках, выявлены четыре уязвимости, позволяющие неаутентифицированному атакующему удалённо выполнить код на устройстве с повышенными привилегиями. По предварительной оценке, проблемы затрагивают как минимум 200 моделей устройств от 65 различных поставщиков, включая различные модели беспроводных маршрутизаторов Asus, A-Link, Beeline, Belkin, Buffalo, D-Link, Edison, Huawei, LG, Logitec, MT-Link, Netgear, Realtek, Smartlink, UPVEL, ZTE и Zyxel.
Проблема охватывает различные классы беспроводных устройств на базе SoC RTL8xxx, от беспроводных маршрутизаторов и усилителей Wi-Fi, до IP-камер и умных устройств для управления освещением. В устройствах на базе чипов RTL8xxx используется архитектура, подразумевающая установку двух SoC - на первом устанавливается прошивка производителя на базе Linux, а на втором выполняется отдельное урезанное Linux-окружение с реализацией функций точки доступа. Начинка второго окружения базируется на типовых компонентах, предоставляемых компанией Realtek в SDK. Указанные компоненты в том числе обрабатывают данные, поступающие в результате отправки внешних запросов.
Уязвимости затрагивают продукты, в которых используются Realtek SDK v2.x, Realtek "Jungle" SDK v3.0-3.4 и Realtek "Luna" SDK до версии 1.3.2. Исправление уже выпущено в обновлении Realtek "Luna" SDK 1.3.2a, а также готовятся к публикации патчи для Realtek "Jungle" SDK. Для Realtek SDK 2.x исправления выпускать не планируется, так как сопровождение данной ветки уже прекращено. Для всех уязвимостей предоставлены рабочие прототипы эксплоитов, позволяющие добиться выполнения своего кода на устройстве.
Выявленные уязвимости (первым двум присвоен уровень опасности 8.1, а остальным - 9.8):
- CVE-2021-35392 - переполнение буфера в процессах mini_upnpd и wscd, реализующих функциональность "WiFi Simple Config" (mini_upnpd занимается обработкой пакетов SSDP, а wscd кроме поддержки SSDP занимается обслуживанием запросов UPnP на базе протокола HTTP). Атакующий может добиться выполнения своего кода через отправку специально оформленных UPnP-запросов "SUBSCRIBE" со слишком большим значением номера порта в поле "Callback".
SUBSCRIBE /upnp/event/WFAWLANConfig1 HTTP/1.1 Host: 192.168.100.254:52881 Callback: <http://192.168.100.2:36657AAAAAA*AAAAAAA/ServiceProxy0> NT: upnp:event
- CVE-2021-35393 - уязвимость в обработчиках "WiFi Simple Config", проявляющаяся при использовании протокола SSDP (использует UDP и формат запросов, похожий на HTTP). Проблема вызвана использованием фиксированного буфера, размером 512 байт, при обработке параметра "ST:upnp" в сообщениях M-SEARCH, отправляемых клиентами для определения наличия сервисов в сети.
- CVE-2021-35394 - уязвимость в процессе MP Daemon, отвечающем за выполнение операций диагностики (ping, traceroute). Проблема позволяет осуществить подстановку своих команд из-за недостаточной проверки аргументов при выполнении внешних утилит.
- CVE-2021-35395 - серия уязвимостей в web-интерфейсах на базе http-серверов /bin/webs и /bin/boa. В обоих серверах выявлены типовые уязвимости, вызванные отсутствием проверки аргументов перед запуском внешних утилит функцией system(). Отличия сводятся только к использованию для атаки разных API. Оба обработчика не включали защиту от атаки CSRF и техники " DNS rebinding", позволяющей организовать отправку запросов из внешней сети при ограничении доступа к интерфейсу только для внутренней сети. В процессах также по умолчанию использовалась предопределённая учётная запись supervisor/supervisor.
Кроме того, в обработчиках выявлено несколько переполнений стека, проявляющихся при отправке аргументов слишком большого размера.
POST /goform/formWsc HTTP/1.1 Host: 192.168.100.254 Content-Length: 129 Content-Type: application/x-www-form-urlencoded submit-url=%2Fwlwps.asp&resetUnCfg=0&peerPin=12345678;ifconfig>/tmp/1;&setPIN=Start+PIN&configVxd=off&resetRptUnCfg=0&peerRptPin=
- Дополнительно отмечается выявление ещё нескольких уязвимостей в процессе UDPServer. Как оказалось одна из проблем уже была обнаружена (Архивная копия от 21 января 2021 на Wayback Machine) другими исследователями ещё в 2015 году, но не была полностью исправлена. Проблема вызвана отсутствием должной проверки аргументов, передаваемых в функцию system() и может быть эксплуатирована отправкой на сетевой порт 9034 строки вида 'orf;ls'. Кроме того, в UDPServer выявлено переполнение буфера из-за небезопасного использования функции sprintf, которое также потенциально может применяться для совершения атак.
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.