- В библиотеке Net-SNMP обнаружена критическая уязвимость CVE-2025-68615, позволяющая удалённое выполнение кода через сервис snmptrapd.
- Уязвимость возникает из-за неверной проверки длины OID, что приводит к переполнению буфера при обработке trap-сообщений.
- Проблема была исправлена в версиях Net-SNMP 5.9.5 и 5.10.pre2; рекомендуется ограничить доступ к UDP-порту 162 извне.
В широко используемом пакете Net-SNMP, реализующем протоколы SNMP v1, v2c и v3, выявлена критическая уязвимость с идентификатором CVE-2025-68615. Она позволяет злоумышленнику выполнить произвольный код на сервере, где активен сервис snmptrapd, обрабатывающий trap-сообщения от сетевых устройств.
Проблема связана с ошибкой в проверке размера OID (объектного идентификатора): условие «trapOidLen >= 0» используется вместо корректного «trapOidLen > 0». Это приводит к записи данных за границы выделенного буфера фиксированного размера при обработке полученных пакетов. Уязвимость носит критический характер, оценена в 9.8 баллов по шкале CVSS и позволяет совершить атаку без необходимости прохождения аутентификации. По умолчанию snmptrapd работает с правами root и принимает запросы на UDP-порт 162, что увеличивает потенциальный ущерб от эксплуатации.
Исследования показывают, что данная ошибочная проверка была допущена при попытке исправить предыдущую проблему с переполнением буфера, связанную с некорректной валидацией последнего символа OID. Рефакторинг и правки в коде snmptrapd_handlers.c ведутся с 2003 года, и уязвимость стала результатом нескольких неудачных исправлений. В настоящий момент в основной ветке проекта действует универсальная проверка, устраняющая переполнение.
Исправления были официально выпущены в версиях Net-SNMP 5.9.5 и 5.10.pre2. Для дополнительной защиты рекомендуется блокировать доступ к UDP-порту 162 на межсетевых экранах извне, что снизит вероятность успешной атаки в сетях с прямым доступом к публичным адресам.
Данная ситуация подчёркивает важность тщательного тестирования и аудита мер безопасности в проектах с открытым исходным кодом, принимая во внимание исторические изменения и исправления ошибок, которые могут порождать новые уязвимости.
