✅ 보고서 제목: 악시오스(Axios) CRLF 헤더 주입 체인 취약점: CVE-2026-40175
✅ 보고서 요약:
📌 악시오스(Axios) 헤더 주입 체인 취약점 관련 내용
- 2026년 4월 10일, Axios의 HTTP Header Injection Chain 취약점인 CVE-2026-40175가 긴급하게 패치되었습니다.
- 해당 취약점은 0.31.0, 1.15.0 미만 버전에서 취약한 것으로 밝혀졌습니다.
- 2026년 4월 10일, CVSS 3.1: 10.0 Critical 취약점으로 발표되었고 패치가 진행되었습니다.
- 2026년 4월 14일 기준으로 알려진 악용 사례는 확인되지 않았으나, 광범위하게 사용되는 Axios의 특성상 클라우드 환경 장악 등 파급력이 매우 크므로 적극적인 위협 탐지를 권장합니다.
📌 참고 사례: 2026년 3월 발생한 NPM 패키지 공급망 공격
- 2026년 3월 31일 00:21~03:20 UTC 사이에 JavaScript 생태계에서 가장 널리 사용되는 HTTP 클라이언트 라이브러리 중 하나인 axios NPM 패키지에 대한 소프트웨어 공급망 공격이 발생하였습니다.
- axios는 Wiz에 따르면 주간 약 1억 회 다운로드되며 클라우드 및 코드 환경의 약 80%에 존재하는 패키지로, 공격자는 유지관리자 계정을 탈취하여 악성 의존성 패키지(plain-crypto-js)를 삽입하고 크로스 플랫폼 백도어(WAVESHAPER.V2)를 배포하였습니다.
- 악성 버전은 수 시간 내에 제거되었으나, Wiz는 악성 버전이 설치된 환경 중 약 3%에서 실제 악성코드 실행이 관측되었다고 보고하였습니다.
📌 취약점 발생 원인
- 해당 취약점은 AxiosHeaders.js에서 HTTP 헤더 값의 CRLF 검증 부재와 Prototype Polluted 프로퍼티의 헤더 유입 경로가 결합되어 발생하는 Injection 취약점입니다.
- 대상 서버의 다른 서드파티 패키지(qs, minimist 등)를 통해 자바스크립트 최상위 객체인 Object.prototype이 사전 오염되면, Prototype Polluted 프로퍼티가 정상 디폴트 헤더로 인식되어 AxiosHeaders.set으로 유입됩니다.
- HTTP 어댑터(lib/adapters/http.js)는 headers.toJSON() 결과를 Node.js http(s).request의 options.headers로 그대로 전달하며, Node.js는 헤더 값을 재검증하지 않으므로 단일 TCP 스트림에 두 개의 HTTP 요청이 기록됩니다.
- 분할된 패킷은 독립적인 HTTP 요청(Smuggled Request)으로 해석되어, 인가되지 않은 PUT 요청을 메타데이터 서비스에 전송하여 자격 증명을 탈취할 수 있습니다.
✅ 위협 탐지 권장 사항 및 조치 방안:
- 제조사에서 제공하는 보안 업데이트를 적용합니다.
- 0.31.0, 1.15.0 버전 이상
- 즉각적인 패치가 불가능할 경우 하단의 조치 방안에 따라 조치할 것을 권장합니다.
- qs, minimist, lodash.merge 등 Prototype pollution 이력이 있는 의존성을 최신 버전으로 갱신합니다.
- HTTP 스트림 내 비정상적인 CRLF 패턴을 실시간으로 모니터링하는 규칙을 활성화합니다.
- lib/adapters/http.js 및 xhr.js에 있는 모든 헤더 값을 검증한 후 하위 요청 함수로 전달합니다.
- 특히 AWS 환경의 경우 IMDSv2 엔드포인트(169.254.169.254)로 향하는 비정상 프로세스 트래픽을 거부하는 정책을 수립합니다.
- 위협 탐지 룰을 업데이트하고 지속적인 모니터링 및 최신 버전의 패치를 권장합니다.
- 더욱 상세한 대응 및 조치 방안이 궁금하시다면 아래 링크를 통해 문의해 주시기 바랍니다.
🧑💻 보고서 작성자: S2W TALON
👉 보고서 전문 문의하기: https://s2w.inc/ko/contact
*해당 보고서는 별도 문의 가능하며 S2W의 QUAXAR 플랫폼 구독 시 전문으로 제공됩니다.