
Эксплойт доказательства концепции для CVE-2022-30114, переполнение буфера в куче (heap-based buffer overflow) в маршрутизаторах Fastweb FastGate. Отправляет специально сформированный HTTP-заголовок Authorization, чтобы вызвать удаленный отказ в обслуживании через сервис cmproxy FastCGI.
Этот скрипт является доказательством концепции (PoC) для CVE-2022-30114 и вызывает перезагрузку домашних маршрутизаторов Fastweb FastGate как версии GPON, так и VDSL2.
CVE-2022-30114 представляет собой кучевое переполнение буфера в исполняемом файле 'cmproxy' — программе, которая обрабатывает HTTP-запросы через веб-сервер Lighttpd FastCGI, прослушивающий TCP-порт 8888. Специально сформированный HTTP-запрос позволяет удаленному злоумышленнику вызвать сбой исполняемого файла и перезагрузить устройство, что приводит к отказу в обслуживании.
Устройства уязвимы к кучевому переполнению буфера, вызванному отсутствием проверки длины значения HTTP-заголовка 'Authorization' в веб-сервисе, доступном на TCP порту 8888. Сервис доступен как на WAN, так и на LAN интерфейсах устройства1.
Удаленный неаутентифицированный злоумышленник, отправляя строку длиннее 100 байт в HTTP-заголовке 'Authorization', вызывает переполнение предварительно выделенного буфера в секции памяти '.bss' исполняемого файла 'cmproxy', который обрабатывает HTTP-запросы, отправленные на указанный выше сервис, по протоколу FastCGI.
Это позволяет перезаписать кучу памяти процесса, вызывая его повреждение и сбой при первом выделении памяти. Стоит отметить, что используемая версия библиотеки C (GNU C Library — glibc v2.24) содержит меры защиты для обнаружения повреждения кучи, однако не исключено, что при углублении анализа можно было бы перезаписать структуры кучи и добиться выполнения кода.
Подробности см. в блог-посте.
Доступ через WAN был отключен в качестве компенсирующего контроля после первого раскрытия информации Fastweb. На момент написания сервис по-прежнему доступен во внутренней LAN. ↩