В популярной библиотеке для 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. Разработчикам следует проявлять особую осторожность при передаче внешних данных в системы конфигурации сторонних библиотек. Кроме того, регулярное обновление зависимостей должно стать стандартной процедурой в жизненном цикле любого проекта, чтобы минимизировать окно возможностей для атакующих.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-25639
- https://github.com/axios/axios/security/advisories/GHSA-43fc-jf86-j433
- https://github.com/axios/axios/commit/28c721588c7a77e7503d0a434e016f852c597b57
- https://github.com/axios/axios/releases/tag/v1.13.5