🇰🇷 한글 설명
Node.js의 ip 패키지 2.0.1 이하 버전에서 isPublic 함수가 127.1, 01200034567 등 특정 IP 주소 형식을 글로벌 라우팅 가능으로 잘못 분류하여 SSRF 공격을 유발합니다. 이는 CVE-2023-42282의 불완전한 패치 결과입니다.
💡 쉬운 설명
Node.js의 'ip' 라이브러리가 특정 IP 주소(예: 127.1)를 안전하지 않은 것으로 판단하지 못해서, 공격자가 내부 서버에 접근할 수 있게 됩니다. 개발자가 신뢰할 수 없는 출처에서 받은 IP 주소를 검증할 때 이 라이브러리를 사용하면 위험합니다.
🇺🇸 원문 (English)
The ip package through 2.0.1 for Node.js might allow SSRF because some IP addresses (such as 127.1, 01200034567, 012.1.2.3, 000:0:0000::01, and ::fFFf:127.0.0.1) are improperly categorized as globally routable via isPublic. NOTE: this issue exists because of an incomplete fix for CVE-2023-42282.
📍 영향받는 시스템
Node.js ip 패키지 버전 2.0.1 이하
⚔️ 공격 벡터
SSRF(Server-Side Request Forgery) - 변형된 IP 주소 형식으로 내부 리소스 접근
🛡️ 대응 방법
ip 패키지를 2.0.2 이상으로 업그레이드
🔧 검증 코드
설치된 ip 패키지 버전이 2.0.2 미만이면 취약함
npm list ip 2>/dev/null | grep -E 'ip@|[0-2]\.[0-0]\.[0-1]'