CVE-2026-93450: переполнение стека в go-openapi/swag jsonutils до 0.27.1
В библиотеке go-openapi/swag jsonutils (до версии 0.27.1) обнаружена уязвимость переполнения стека из-за неограниченной рекурсии при разборе и сериализации упорядоченного JSON. Неаутентифицированный удалённый атакующий может отправить глубоко вложенный JSON-документ в сервис, принимающий OpenAPI-спецификации, и вызвать аварийное завершение процесса. Критичность — высокая (CVSS 8.7).
Подробности
Уязвимость затрагивает go-openapi/swag jsonutils во всех версиях до 0.27.1. Причиной является неограниченная рекурсия в функциях упорядоченного маршалинга и анмаршалинга JSON: в коде отсутствует лимит на глубину вложенности структур. При обработке специально сформированного JSON-документа с экстремально глубокой вложенностью рекурсивные вызовы исчерпывают стек, что приводит к фатальному переполнению стека и аварийному завершению процесса. Согласно описанию CVE, эксплуатация не требует аутентификации: достаточно, чтобы целевой сервис принимал OpenAPI-спецификации или иные JSON-документы, обрабатываемые уязвимой библиотекой. Атакующий отправляет заранее подготовленный документ с глубокой вложенностью, вызывая падение процесса вместе со всеми обрабатываемыми в этот момент запросами. Такой сценарий создаёт риск отказа в обслуживании (DoS). Уязвимости присвоена оценка CVSS 8.7 (HIGH), что отражает высокую опасность: низкая сложность эксплуатации, отсутствие требований к привилегиям и значительное влияние на доступность сервиса.Что делать
Основная рекомендация — обновить go-openapi/swag jsonutils до версии 0.27.1 или более поздней, где устранена проблема неограниченной рекурсии. После обновления следует пересобрать и переразвернуть зависимые сервисы, убедившись, что в сборку попала исправленная версия библиотеки. Если немедленное обновление невозможно, стоит рассмотреть временные меры: ограничение размера и глубины вложенности принимаемых JSON-документов на уровне входных фильтров и валидаторов, а также ограничение доступа к эндпоинтам, обрабатывающим OpenAPI-спецификации, средствами сетевой сегментации и аутентификации. Дополнительно рекомендуется настроить мониторинг аварийных завершений процессов и аномально крупных или глубоко вложенных запросов, чтобы своевременно выявлять попытки эксплуатации.Итог
CVE-2026-93450 — серьёзная уязвимость отказа в обслуживании в широко используемой Go-библиотеке. Поскольку эксплуатация не требует аутентификации и приводит к падению процесса, организациям, применяющим go-openapi/swag jsonutils, следует приоритизировать обновление до версии 0.27.1 и проверить наличие уязвимой зависимости в своих проектах.Источник: CVE Project (cvelistV5)
