🇰🇷 한글 설명
Axios의 ToFormData 기능에서 프로토타입 오염(Prototype Pollution) 취약점이 발견되었습니다. 공격자가 직렬화 옵션이나 visitor 속성을 조작하여 필드 명칭 변경, 요청 실패 유도, 또는 함수 주입을 통한 코드 실행을 시도할 수 있습니다.
💡 쉬운 설명
프로그램의 기본 설계도를 몰래 수정하여 데이터 전송 방식을 바꾸거나 오류를 일으킬 수 있는 결함입니다. 공격자가 이 설계를 조작하면 데이터가 잘못 전달되거나 시스템에 악성 명령을 내릴 위험이 있습니다.
🇺🇸 원문 (English)
Axios is a promise-based HTTP client for the browser and Node.js. From 0.28.0 until 0.34.0 and 1.15.1 until 1.20.0, ToFormData processes inherited serialization options and visitor properties supplied through prototype pollution. A separate same-process prototype-pollution flaw supplies inherited dots, indexes, metaTokens, maxDepth, visitor, or Blob values before object serialization. The inherited options alter toFormData field naming and data interpretation, maxDepth can force request failure, Blob changes value handling, and a polluted visitor can execute when an attacker already has the stronger ability to inject a function. Serialized field naming and data interpretation can change, maxDepth can cause request failure, Blob can alter value handling, and a polluted visitor can execute under the stronger function-injection primitive. This issue is fixed in versions 0.34.0 and 1.20.0.
📍 영향받는 시스템
Axios versions 0.28.0 to 0.34.0 and 1.15.1 to 1.20.0
⚔️ 공격 벡터
프로토타입 오염을 통해 직렬화 옵션이나 visitor 속성을 조작하여 데이터 해석을 변경하거나 함수를 실행함
🛡️ 대응 방법
Axios를 최신 버전인 0.34.0 또는 1.20.0 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위가 출력되면 해당 버전이 설치되어 있는 상태입니다.
npm list axios | grep -E 'axios@(0/(2[8-9]|3[0-3])|1/(1[5-9]|20))'