🇰🇷 한글 설명
Axios 라이브러리의 toFormData 함수가 깊이 제한 없이 중첩된 객체를 재귀적으로 처리하여, 매우 깊게 중첩된 데이터 전송 시 Node.js 프로세스가 RangeError로 충돌합니다. 공격자가 의도적으로 깊게 중첩된 요청을 보내 서비스 거부(DoS)를 유발할 수 있습니다. 1.15.1 및 0.31.1 이상에서 수정되었습니다.
💡 쉬운 설명
Axios 웹 통신 라이브러리가 매우 복잡하게 중첩된 데이터를 처리할 때 서버가 중단되는 문제입니다. 공격자가 이를 악용하면 웹 서비스를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, toFormData recursively walks nested objects with no depth limit, so a deeply nested value passed as request data crashes the Node.js process with a RangeError. This vulnerability is fixed in 1.15.1 and 0.31.1.
📍 영향받는 시스템
Axios 1.15.1 미만, 0.31.1 미만 버전을 사용하는 모든 Node.js 기반 애플리케이션 및 서버
⚔️ 공격 벡터
깊이 제한 없이 중첩된 JSON 데이터를 POST/PUT 요청의 요청 본문으로 전송하여 RangeError 발생 유도
🛡️ 대응 방법
npm update axios로 1.15.1 이상(0.x 사용 시 0.31.1 이상) 버전으로 즉시 업데이트
🔧 검증 코드
출력된 버전이 1.15.1 이상 또는 0.31.1 이상이면 패치됨, 그 이하면 취약 상태
npm list axios 2>/dev/null | grep -E 'axios@[0-9.]+'