🇰🇷 한글 설명
Axios 라이브러리가 NO_PROXY 규칙 확인 시 호스트명을 올바르게 정규화하지 못하는 취약점입니다. localhost.나 [::1] 같은 loopback 주소가 NO_PROXY 검사를 우회하여 프록시를 통과하게 되며, 이는 SSRF 공격으로 이어질 수 있습니다.
💡 쉬운 설명
Axios 라이브러리가 내부 서비스를 보호하는 설정을 제대로 확인하지 못합니다. 공격자가 이를 악용하여 보호된 내부 서비스에 접근할 수 있습니다.
🇺🇸 원문 (English)
Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.0 and 0.31.0, Axios does not correctly handle hostname normalization when checking NO_PROXY rules. Requests to loopback addresses like localhost. (with a trailing dot) or [::1] (IPv6 literal) skip NO_PROXY matching and go through the configured proxy. This goes against what developers expect and lets attackers force requests through a proxy, even if NO_PROXY is set up to protect loopback or internal services. This issue leads to the possibility of proxy bypass and SSRF vulnerabilities allowing attackers to reach sensitive loopback or internal services despite the configured protections. This vulnerability is fixed in 1.15.0 and 0.31.0.
📍 영향받는 시스템
Axios 1.15.0 미만, 0.31.0 미만
⚔️ 공격 벡터
NO_PROXY 규칙을 우회하여 loopback 주소(localhost., [::1])를 통해 내부 서비스 접근 및 SSRF 공격 수행
🛡️ 대응 방법
Axios를 1.15.0 이상 또는 0.31.0 이상으로 업그레이드
🔧 검증 코드
axios 버전이 1.15.0 이상 또는 0.31.0 이상이면 패치됨, 미만이면 취약함
npm list axios 2>/dev/null | grep -E 'axios@[0-9]' | head -1