Исследователи кибербезопасности выявили критическую уязвимость нулевого дня в роутерах TP-Link, которая позволяет злоумышленникам обходить защиту рандомизации размещения адресного пространства (ASLR) и выполнять произвольный код удалённо. Уязвимость, получившая идентификатор CVE-2025-9961, находится в компоненте CWMP (TR-069) и может быть активирована через специально сформированные SOAP-запросы, что предоставляет полный контроль над затронутыми устройствами.
Детали уязвимости
Проблема возникает из-за непроверенного переполнения буфера в стеке в процедуре установки параметров CWMP. Путём отправки тщательно сконструированной вредоносной нагрузки через пользовательский ACS-сервер атакующие могут перезаписать программный счётчик и захватить управление потоком выполнения. Несмотря на активную защиту ASLR, подбор базового адресного пространства в сочетании с автоматическими перезапусками службы через веб-интерфейс обеспечивает надёжную эксплуатацию уязвимости. Используя технику ret2libc с функцией system() из библиотеки libc, злоумышленники в конечном итоге получают обратную оболочку на целевой сети.
Группа исследователей ByteRay впервые обнаружила CVE-2025-9961 во время экспериментов с понижением версии прошивки, используя ранее выявленную уязвимость внедрения команд (CVE-2023-1389) для загрузки уязвимой версии CWMP. С помощью инструмента checksec было подтверждено отсутствие защиты PIE и канареек стека, хотя были активированы NX и частичная RELRO, а ASLR обеспечивала энтропию в 9-10 бит для libc и стека соответственно.
Первоначальные попытки создания доказательства концепции через GenieACS оказались неудачными из-за невозможности сохранения непечатаемых байтов, что потребовало разработки специального ACS на Python, способного полностью передавать диапазон байтов вредоносной нагрузки. Пользовательский ACS выполняет три шага: инициирует сессию TR-069 и получает идентификатор устройства CPE, устанавливает сессионные куки и отправляет запрос SetParameterValues, содержащий нагрузку для переполнения, а также осуществляет подбор рандомизированного базового адреса, обрабатывая сбои CWMP путём перезапуска службы через веб-панель роутера.
Цепочка ret2libc загружает вредоносную нагрузку обратной оболочки, размещённую на простом HTTP-сервере. Ключевые гаджеты и указатели функций вычисляются динамически, чтобы избежать нулевых байтов. Финальная нагрузка вызывает curl для загрузки и выполнения вредоносного бинарного файла ELF, что приводит к установлению обратного TCP-соединения с атакующим.
TP-Link уже выпустила обновления прошивки, устраняющие CVE-2025-9961 путём добавления проверок длины ввода и активации полной RELRO и канареек стека. Администраторам рекомендуется немедленно обновить прошивку и отключить удалённую конфигурацию ACS, если она явно не требуется. Установление строгих учётных данных для веб-интерфейса и ограничение доступа TR-069 доверенным сетям дополнительно снижает риск эксплуатации.
CVE-2025-9961 подчеркивает серьезные риски, связанные с несовершенными протоколами управления и недостаточной защитой двоичных файлов. Своевременное применение исправлений и многоуровневые меры безопасности по-прежнему имеют решающее значение для обеспечения безопасности сетевой инфраструктуры от современных методов эксплуатации.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-9961
- https://nvd.nist.gov/vuln/detail/CVE-2025-9961
- https://blog.byteray.co.uk/zero-day-alert-automated-discovery-of-critical-cwmp-stack-overflow-in-tp-link-routers-0bc495a08679
- https://www.tp-link.com/us/support/faq/4647/
- https://www.tp-link.com/us/support/download/archer-ax10/
- https://www.tp-link.com/us/support/download/archer-ax1500/