CVE-2026-33818: переполнение стека в encoding/asn1 стандартной библиотеки Go
В стандартной библиотеке Go выявлена уязвимость CVE-2026-33818: функция Unmarshal в пакете encoding/asn1 не ограничивает глубину рекурсии при разборе вложенных структур. Это позволяет вызвать исчерпание стека (stack exhaustion) и аварийное завершение процесса. Уязвимость затрагивает приложения на Go, обрабатывающие ASN.1-данные из недоверенных источников.
Подробности
Уязвимость затрагивает стандартную библиотеку Go — пакет encoding/asn1. Функция Unmarshal при разборе глубоко вложенных рекурсивных структур не ограничивает глубину рекурсии, что позволяет злоумышленнику исчерпать стек вызовов (stack exhaustion). В результате обрабатывающий процесс завершается аварийно — классический сценарий отказа в обслуживании (DoS). Проблема особенно актуальна для приложений, которые принимают ASN.1-данные из недоверенных источников: TLS- и PKI-инфраструктуры, парсеры сертификатов, X.509, протоколы аутентификации и другие системы, где ASN.1 используется для кодирования структур. Если такие данные поступают извне без предварительной валидации, атакующий может инициировать отказ в обслуживании, отправив специально сконструированный глубоко вложенный объект. Уязвимость относится к классу CWE-674 (Uncontrolled Recursion) и CWE-400 (Uncontrolled Resource Consumption). Точное значение CVSS в записи CVE не указано — при оценке риска следует ориентироваться на доступность сервиса и характер обрабатываемых данных.Что делать
Основная рекомендация — обновить Go до версии, содержащей исправление: в ней в Unmarshal добавлено ограничение максимальной глубины рекурсии. Проверьте, какая версия Go используется в ваших сборках, и пересоберите затронутые приложения после обновления тулчейна. Дополнительные меры:- Ограничьте приём ASN.1-данных из недоверенных источников и валидируйте входные данные до передачи в Unmarshal.
- Применяйте лимиты на размер и структуру входных данных на периметре (API-шлюзы, прокси, валидаторы).
- Настройте мониторинг аварийных завершений процессов, обрабатывающих ASN.1, чтобы оперативно выявлять попытки эксплуатации.
- Проверьте зависимости: если сторонние библиотеки вызывают encoding/asn1 для разбора внешних данных, они также наследуют риск.
Источник: CVE Project (cvelistV5)
