🇰🇷 한글 설명
Axios 라이브러리의 기본 transformResponse 함수에서 검증되지 않은 parseReviver 콜백이 Object.prototype 오염을 통해 주입되어, 모든 JSON API 응답을 선택적으로 조작할 수 있는 Prototype Pollution 취약점입니다. 공격자는 이를 악용해 권한 상승, 잔액 조작, 인증 우회 등을 수행할 수 있습니다.
💡 쉬운 설명
Axios 라이브러리가 JSON 데이터를 처리할 때 악의적으로 주입된 함수에 의해 API 응답이 몰래 변조될 수 있습니다. 공격자가 권한을 높이거나 금융 정보를 조작하도록 응답을 변경할 수 있습니다.
🇺🇸 원문 (English)
Axios is a promise based HTTP client for the browser and Node.js. From 1.0.0 to before 1.15.2, he Axios library is vulnerable to a Prototype Pollution "Gadget" attack that allows any Object.prototype pollution in the application's dependency tree to be escalated into surgical, invisible modification of all JSON API responses — including privilege escalation, balance manipulation, and authorization bypass. The default transformResponse function at lib/defaults/index.js:124 calls JSON.parse(data, this.parseReviver), where this is the merged config object. Because parseReviver is not present in Axios defaults, not validated by assertOptions, and not subject to any constraints, a polluted Object.prototype.parseReviver function is called for every key-value pair in every JSON response, allowing the attacker to selectively modify individual values while leaving the rest of the response intact. This vulnerability is fixed in 1.15.2.
📍 영향받는 시스템
Axios 1.0.0 ~ 1.15.1 버전
⚔️ 공격 벡터
Object.prototype.parseReviver 오염을 통해 JSON 응답 파싱 중 악의적 함수 실행
🛡️ 대응 방법
Axios를 1.15.2 이상으로 즉시 업그레이드
🔧 검증 코드
출력된 버전이 1.15.2 이상이면 안전, 1.15.1 이하면 취약점 존재
npm list axios 2>/dev/null | grep axios@ | awk '{print $2}'