60 миллионов загрузок в неделю — и критическая дыра. Уязвимость в Axios открывает путь к AWS-токенам и захвату облака

60 миллионов загрузок в неделю — и критическая дыра. Уязвимость в Axios открывает путь к AWS-токенам и захвату облака

PoC уже на GitHub, патч уже есть.

image

Уязвимость в библиотеке Axios может помочь атакующему довести загрязнение прототипа в сторонних зависимостях до удаленного выполнения кода и компрометации облачной среды. Проблема получила идентификатор CVE-2026-40175, а 10 апреля 2026 года сведения о ней стали публичными.

По данным «СайберОК», в Рунете доступно до 20 000 активных хостов, и около 39% содержат потенциально уязвимые версии Axios. При этом фактическое распространение может быть заметно шире, поскольку библиотека часто используется внутри микросервисов и контейнеров.

Сценарий атаки строится как цепочка. Сначала злоумышленник загрязняет Object.prototype через уязвимые зависимости, среди которых упоминаются qs, minimist и body-parser. Затем Axios наследует загрязненные свойства и добавляет их в заголовки без проверки символов перевода строки. Такой механизм открывает путь к CRLF-инъекции, внедрению произвольных заголовков и разделению HTTP-запросов.

Дальше цепочка может привести к обращению к AWS IMDS. Через инъекцию и перенаправление запросов атакующий способен отправить PUT-запрос для получения токена, а затем прочитать метаданные. В результате появляется доступ к IAM-токенам и возможность повысить привилегии в облачной инфраструктуре.

Под угрозой находятся все версии Axios ниже 1.15.0. На GitHub уже опубликованы два публичных PoC. Причиной проблемы названо отсутствие валидации символов CR и LF в AxiosHeaders.set из файла lib/core/AxiosHeaders.js. Исправление добавляет проверку через assertValidHeaderValue.

Уровень опасности для CVE-2026-40175 оценили как критический. В одних источниках уязвимость получила 10,0 балла по CVSS 3.1, в других указана оценка 9,9.

В числе возможных индикаторов атаки названы аномальные PUT-запросы к адресу 169.254.169.254, попытки манипуляции через __proto__ или constructor.prototype в HTTP-запросах и журналах WAF, а также CRLF-инъекции с последовательностями %0d%0a и \r\n. Дополнительными признаками могут стать использование IAM-токенов с чужих IP-адресов, ошибки разбора заголовков и HTTP 500 в логах Node.js-сервисов.

Для снижения риска рекомендуется обновить Axios до версии 1.15.0, проверить зависимости на Prototype Pollution с помощью npm audit и SCA-инструментов, ограничить доступ к 169.254.169.254 через сетевые политики или Security Groups, а также настроить WAF на обнаружение __proto__ и CRLF-инъекций на входе.