Атака Cable Haunt, позволяющая получить контроль за кабельными модемами

Исследователи безопасности из компании Lyrebirds раскрыли сведения об уязвимости (CVE-2019-19494) в кабельных модемах на базе чипов Broadcom, позволяющей получить полный контроль за устройством. По предположению исследователей проблеме подвержены около 200 миллионов устройств в Европе, применяемых разными кабельными операторами. Для проверки своего модема подготовлен скрипт, оценивающий активность проблемного сервиса, а также рабочий прототип эксплоита для совершения атаки при открытии в браузере пользователя специально оформленной страницы.

Проблема вызвана переполнением буфера в сервисе, предоставляющем доступ к данным спектрального анализатора, позволяющего операторам диагностировать проблемы и учитывать уровень помех при кабельном подключении. Сервис обрабатывает запросы чрез jsonrpc и принимает соединения только во внутренней сети. Эксплуатация уязвимости в сервисе оказалась возможна благодаря двум факторам — сервис не был защищён от применения техники «DNS rebinding» из-за некорректного использования WebSocket и в большинстве случаев предоставлял доступ на основе предопределённого инженерного пароля, общего для всех устройств модельного ряда (спектральный анализатор является отдельным сервисом на своём сетевом порту (обычно 8080 или 6080) со своим инженерным паролем доступа, который не пересекается с паролем от web-интерфейса администратора).

Техника «DNS rebinding» позволяет при открытии пользователем определённой страницы в браузере установить WebSocket-соединение с сетевым сервисом во внутренней сети, недоступным для прямого обращения через интернет. Для обхода применяемой в браузерах защиты от выхода за пределы области текущего домена (cross-origin) применяется смена имени хоста в DNS — на DNS-сервере атакующих настраивается поочерёдная отдача двух IP-адресов: на первый запрос отдаётся реальный IP сервера со страницей, а затем возвращается внутренний адрес устройства (например, 192.168.10.1). Время жизни (TTL) для первого ответа выставляется в минимальное значение, поэтому при открытии страницы браузер определяет реальный IP сервера атакующего и загружает содержимое страницы. На странице запускается JavaScript-код, который ожидает истечения TTL и отправляет второй запрос, который теперь определяет хост как 192.168.10.1, что позволяет из JavaScript обратиться к сервису внутри локальной сети, обойдя ограничение cross-origin.

После получения возможности отправки запроса к модему, атакующий может эксплуатировать переполнение буфера в обработчике спектрального анализатора, которое позволяет добиться выполнения кода с правами root на уровне прошивки. После этого атакующий получает полный контроль над устройством, позволяющий изменить любые настройки (например, подменять DNS-ответы через перенаправление DNS на свой сервер), отключить обновление прошивки, подменить прошивку, перенаправить трафик или вклиниться в сетевые соединения (MiTM).

Уязвимость присутствует в типовом обработчике Broadcom, который используется в прошивках кабельных модемов различных производителей. В процессе разбора поступающих через WebSocket запросов в формате JSON, из-за ненадлежащей проверки данных хвост указанных в запросе параметров может быть записан в область за пределами выделенного буфера и переписать часть стека, в том числе, адрес возврата и сохранённые значения регистров.

В настоящее время уязвимость подтверждена в следующих устройствах, которые были доступны для изучения в процессе исследования:

  • Sagemcom F@st 3890, 3686;
  • NETGEAR CG3700EMR, C6250EMR, CM1000 ;
  • Technicolor TC7230, TC4400;
  • COMPAL 7284E, 7486E;
  • Surfboard SB8200.

Источник: http://www.opennet.ru/opennews/art.shtml?num=52169