Уязвимость в популярной библиотеке Axios позволяет легко обрушить серверы на Node.js

vulnerability

В популярной библиотеке для Node.js Axios обнаружена критическая уязвимость, позволяющая злоумышленникам вызывать отказ в обслуживании (DoS). Проблема, получившая идентификатор CVE-2026-25639, затрагивает все версии пакета вплоть до 1.13.4 включительно. Разработчики уже выпустили исправление в версии 1.13.5, и специалисты по безопасности настоятельно рекомендуют немедленно обновить библиотеку во всех проектах.

Детали уязвимости

Исследователь, известный под псевдонимом hackerman70000, обнаружил и сообщил об уязвимости. Она существует в функции "mergeConfig", которая отвечает за обработку конфигурационных объектов перед выполнением HTTP-запросов. Когда злоумышленник передаёт специально сформированный JSON-объект, содержащий свойство "__proto__", библиотека пытается интерпретировать "Object.prototype" языка JavaScript как вызываемую функцию. Это приводит к немедленному краху приложения.

Атака отличается крайней простотой. Для успешной эксплуатации достаточно отправить вредоносную нагрузку, например, "{"__proto__": {"x": 1}}", на любой эндпоинт, который принимает JSON-ввод и передаёт его в методы конфигурации Axios. Следовательно, любое приложение на Node.js, которое обрабатывает контролируемый пользователем JSON и использует его с методами Axios, такими как "get()" или "post()", становится потенциальной мишенью.

Проблема локализована в логике слияния конфигураций в строках 98-101 файла "lib/core/mergeConfig.js". Код не выполняет надлежащую проверку имён свойств перед их обработкой. Важно отметить, что это не классическая атака загрязнения прототипа, при которой вредоносный код постепенно нарушает работу приложения. В данном случае сервер завершает работу мгновенно при обработке злонамеренной конфигурации, что делает уязвимость мощным инструментом для DoS-атак.

Влияние этой проблемы крайне широко, поскольку Axios является одной из самых распространённых библиотек для выполнения HTTP-запросов в серверных сервисах. Злоумышленники могут использовать уязвимость удалённо, без необходимости аутентификации, и для этого не требуется высокая техническая подготовка.

Система оценки критичности уязвимостей CVSS присвоила проблеме высокий уровень опасности с баллом 7.5 из 10. Вектор атаки является сетевым и имеет низкую сложность, для его выполнения не требуются особые привилегии или взаимодействие с пользователем. Хотя уязвимость не ставит под угрозу конфиденциальность или целостность данных, она полностью нарушает доступность, вызывая падение приложения.

Команда разработчиков Axios оперативно отреагировала на сообщение, выпустив патч в версии 1.13.5. Исправление реализует корректные проверки для нестандартных имён свойств в конфигурационных объектах. Таким образом, основная мера защиты для всех пользователей библиотеки - немедленное обновление до последней версии.

Однако простое обновление может быть недостаточным. Организациям следует провести аудит своих кодовых баз, чтобы выявить все случаи, когда пользовательский ввод попадает в параметры конфигурации Axios. Это поможет убедиться в отсутствии скрытых путей для эксплуатации. После этого необходимо развернуть обновлённые версии во всех производственных средах.

Данный инцидент в очередной раз подчёркивает важность тщательной валидации пользовательского ввода, особенно при работе с такими мощными механизмами, как прототипы в JavaScript. Разработчикам следует проявлять особую осторожность при передаче внешних данных в системы конфигурации сторонних библиотек. Кроме того, регулярное обновление зависимостей должно стать стандартной процедурой в жизненном цикле любого проекта, чтобы минимизировать окно возможностей для атакующих.

Ссылки

Комментарии: 0