В экосистеме веб-разработки выявлена опасная уязвимость, затрагивающая одну из самых популярных библиотек для выполнения HTTP-запросов - Axios. Проблема, получившая идентификатор CVE-2026-40175, имеет высочайший уровень опасности с оценкой 9,9 по шкале CVSS 3.1. Она открывает злоумышленникам путь к выполнению произвольного кода на сервере и полному захвату контроля над облачной инфраструктурой, в частности, в средах AWS. Инцидент важен не только для разработчиков, но и для компаний любого масштаба, чьи приложения полагаются на этот широко распространенный инструмент, поскольку угроза позволяет обойти ключевые механизмы безопасности облачных платформ.
Уязвимость CVE-2026-40175
Суть уязвимости заключается в цепочке атак, позволяющей осуществлять неограниченную утечку метаданных облачной среды. Проблема коренится в компонентах обработки HTTP-заголовков библиотеки, а именно в файле "lib/adapters/http.js". Согласно бюллетеню безопасности, в коде полностью отсутствует санитизация (очистка) значений заголовков, что классифицируется как недостаток CWE-113 (CRLF-инъекция). Эта ошибка, сочетаясь с встроенными по умолчанию возможностями для атаки типа "подделка межсайтовых запросов" (Server-Side Request Forgery, SSRF, CWE-918) и "контрабанды запросов" (Request Smuggling, CWE-444), формирует высокоэксплуатируемый вектор для атаки.
Особую опасность данной уязвимости придает тот факт, что для её эксплуатации не требуется прямого ввода данных от пользователя. Атака построена на использовании так называемой цепочки "гаджетов" (Gadget chain). Если злоумышленнику удается "загрязнить" глобальный "Object.prototype" через любую другую стороннюю библиотеку в стеке зависимостей приложения (например, "body-parser", "qs" или "minimist"), Axios автоматически подхватит эти модифицированные свойства на этапе конфигурации. Поскольку библиотека не проверяет объединенные значения на наличие символов возврата каретки и перевода строки (CRLF, "\r\n"), загрязненное свойство превращается в опасную полезную нагрузку для контрабанды HTTP-запросов.
Опубликованное подтверждение концепции (Proof of Concept, PoC) демонстрирует критический сценарий эксплуатации в облачных средах. Когда разработчик делает абсолютно безопасный, "зашитый" в код исходящий запрос, Axios незаметно добавляет загрязненное свойство прототипа (например, "x-amz-target") в заголовки запроса. Эти вредоносные заголовки затем записываются напрямую в сокет без какой-либо структурной проверки. Такое поведение позволяет атакующему "протащить" вторичный PUT-запрос, нацеленный на сервис метаданных AWS EC2 по адресу 169.254.169.254. Ключевым моментом является то, что этот контрабандный запрос включает в себя обязательный заголовок "X-aws-ec2-metadata-token-ttl-seconds", что успешно обходит защиту механизма сессионных токенов AWS IMDSv2 (Instance Metadata Service версии 2). В результате злоумышленник может получить валидный токен сессии, похитить учетные данные IAM и добиться полной компрометации облачного аккаунта.
Эксперты подчеркивают, что последствия выходят далеко за рамки простой утечки метаданных. Данный метод может быть использован для обхода аутентификации, например, путем инъекции заголовков "Cookie" или "Authorization" для доступа к внутренним административным панелям. Кроме того, возможна атака на отравление кеша (cache poisoning) через внедрение заголовка "Host", что может повлиять на работу других служб, использующих общий кеш. Таким образом, уязвимость трансформируется из узкотехнической ошибки в библиотеке в инструмент для комплексной атаки на всю инфраструктуру.
Затронутыми оказались практически все развертывания Axios, как устаревшие, так и современные. Явно уязвимыми к описанной цепочке атак являются все версии библиотеки до 1.13.2. Для устранения этой критической угрозы командам разработчиков необходимо немедленно обновить зависимость Axios до версии 1.15.0 или более поздней. Этот патч решает проблему путем введения строгой валидации всех значений заголовков перед передачей их низкоуровневым функциям запроса. Если обновленная библиотека обнаруживает недопустимые символы CRLF, она немедленно генерирует ошибку безопасности, что эффективно нейтрализует цепочку инъекций и предотвращает атаку на контрабанду запросов.
Между тем, данная история служит серьезным напоминанием для индустрии. Она иллюстрирует, как уязвимость в одной, казалось бы, второстепенной библиотеке может стать катализатором для компрометации всей системы безопасности, особенно в эпоху повсеместного использования облачных сервисов. Инцидент также высвечивает сложность современных цепочек зависимостей в экосистеме JavaScript и npm, где безопасность конечного приложения может неожиданно зависеть от стороннего кода, косвенно включенного в проект. Специалистам по кибербезопасности и разработчикам рекомендуется не только применять патчи, но и пересматривать архитектуру приложений, минимизируя неявные риски, связанные с загрязнением прототипов и недоверенными данными в конфигурациях.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-40175
- https://github.com/axios/axios/security/advisories/GHSA-fvcv-3m26-pcqx
- https://github.com/axios/axios/pull/10660
- https://github.com/axios/axios/commit/363185461b90b1b78845dc8a99a1f103d9b122a1