🇰🇷 한글 설명
Axios의 특정 버전에서 HTTP 메서드를 명시하지 않을 경우 Object.prototype에서 상속된 메서드 값을 읽어올 수 있는 취약점이 발견되었습니다. 만약 다른 취약점으로 인해 Object.prototype이 오염되어 있다면, 의도치 않게 상태 변경을 유발하는 HTTP 메서드가 전송될 수 있습니다. 이 문제는 Axios 자체에서 발생하는 것이 아니라 프로토타입 오염을 이용하는 읽기 측 가젯(read-side gadget)입니다.
💡 쉬운 설명
Axios라는 도구를 사용할 때, 설정이 잘못되어 있으면 공격자가 몰래 바꾼 명령어가 실행될 수 있는 허점이 있습니다. 다른 보안 구멍을 통해 시스템 설정을 조작하면, 원래는 데이터를 읽기만 해야 하는 요청이 데이터를 삭제하거나 수정하는 요청으로 변할 수 있습니다.
🇺🇸 원문 (English)
Axios is a promise-based HTTP client for the browser and Node.js. From 0.27.2 until 0.34.0 and 1.20.0, Axios default-instance requests that omit an explicit method can read an inherited method value from Object.prototype. If another vulnerability in the same process pollutes Object.prototype.method, calls such as axios.request({ url }) and axios({ url }) can send a state-changing HTTP method instead of the expected default GET. Axios does not create the prototype pollution source. This is a read-side gadget in axios request dispatch. This issue is fixed in version 0.34.0 and 1.20.0.
📍 영향받는 시스템
Axios versions 0.27.2 to 0.34.0 and 1.20.0
⚔️ 공격 벡터
Prototype Pollution 취약점을 통해 Object.prototype을 조작한 후, Axios의 기본 요청 메서드를 변조하여 공격 수행
🛡️ 대응 방법
Axios를 0.34.0 또는 1.20.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Axios의 버전이 0.34.0 미만이거나 1.20.0 미만인지 확인하십시오.
npm list axios | grep axios