Специалисты по информационной безопасности обнаружили критическую уязвимость, связанную с переполнением буфера, в маршрутизаторах D-Link DIR-825 Rev.B версии 2.10. Проблема, получившая идентификатор CVE-2025-7206, позволяет злоумышленникам вызывать отказ в обслуживании серверов без необходимости прохождения аутентификации. Уязвимость затрагивает httpd-бинарник устройства и эксплуатируется через манипуляции с параметром language в скрипте switch_language.cgi. Это создает серьезные риски для корпоративных сетей, так как атакующие могут направлять специально сформированные запросы, приводящие к сбоям в работе оборудования.
Технический анализ уязвимости
Проблема возникает из-за недостаточной проверки входных данных при обработке параметра language в маршрутизаторах D-Link DIR-825. Исследователь, известный под псевдонимом iC0rner, выяснил, что уязвимость проявляется, когда значение language, переданное через switch_language.cgi, сохраняется в энергонезависимой памяти устройства (nvram) без должного контроля. Впоследствии, при обращении к ASP-страницам, содержащим определенные теги скриптов, сохраненное значение извлекается и обрабатывается через цепочку функций, что приводит к переполнению стека.
Эксплуатация уязвимости осуществляется в два этапа. Сначала злоумышленник отправляет POST-запрос к switch_language.cgi с искусственно увеличенным значением параметра language. Этот вредоносный фрагмент сохраняется в памяти маршрутизатора. Затем при обращении к любой ASP-странице, содержащей тег:
1 | <script type="text/javascript" src="lang_<% CmoGetCfg("language","none"); %>.js"></script> |
Система пытается обработать сохраненное значение, что приводит к переполнению буфера в функции sub_40bFC4.
Цепочка уязвимости начинается в функции sub_410DDC, где параметр language обрабатывается без проверки границ. Данные передаются через несколько функций, включая do_ebd_js и cmo_get_cfg, пока не достигают уязвимой функции sub_40bFC4, где и происходит переполнение. В результате это вызывает повреждение памяти и завершение работы httpd-сервиса с ошибкой сегментации.
Методы эксплуатации и возможные последствия
Исследователь предоставил детальное описание Proof of Concept (PoC), демонстрирующего эксплуатацию уязвимости. Атака включает отправку POST-запроса к "/switch_language.cgi" с подготовленным payload, содержащим искусственно увеличенное значение параметра language. При этом используется специальный шаблон символов, спроектированный для провокации переполнения буфера. После сохранения вредоносного значения любой запрос к ASP-странице активирует уязвимость, приводя к аварийному завершению работы httpd-сервиса.
Особую опасность представляет тот факт, что для успешной атаки не требуется наличия каких-либо привилегий или учетных данных. Уязвимость может быть использована удаленно, что делает ее доступной как для внешних злоумышленников, так и для внутренних нарушителей, имеющих доступ к сети.
Рекомендации по защите
Специалисты настоятельно рекомендуют владельцам уязвимых устройств D-Link DIR-825 предпринять следующие меры:
- Необходимо ограничить доступ к интерфейсу управления маршрутизатором на сетевом уровне, разрешая подключение только с доверенных IP-адресов.
- Важно отслеживать подозрительную сетевую активность, такую как массовые POST-запросы к switch_language.cgi.
- Следует дождаться выхода официального обновления прошивки от D-Link и незамедлительно его установить.
Кроме того, администраторам рекомендуется внедрить механизмы валидации входных данных, чтобы предотвратить подобные атаки в будущем. Временной мерой может стать отключение доступа к уязвимому скрипту через настройки веб-сервера или межсетевого экрана.
Перспективы устранения проблемы
На момент публикации материала производитель еще не выпустил официальное исправление, однако в D-Link заявили, что работают над патчем. Эксперты прогнозируют, что обновление может быть выпущено в ближайшие недели. Пока же пользователям рекомендуется следовать приведенным выше рекомендациям, чтобы минимизировать риск эксплуатации уязвимости.