Уразливості Realtek SDK призвели до проблем у пристроях 65 виробників

У компонентах 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: NT: UP
  • 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&peer ;&setPIN=Start+PIN&configVxd=off&resetRptUnCfg=12345678&peerRptPin=
  • Додатково зазначається виявлення ще кількох уразливостей у процесі UDPServer. Як виявилося, одна з проблем вже була виявлена ​​іншими дослідниками ще в 2015 році, але не була повністю виправлена. Проблема викликана відсутністю належної перевірки аргументів, що передаються у функцію system() і може бути експлуатована відправкою на мережевий порт 9034 рядка виду 'orf;ls'. Крім того, в UDPServer виявлено переповнення буфера через небезпечне використання функції sprintf, яке також потенційно може застосовуватися для атак.

Джерело: opennet.ru

Додати коментар або відгук