🇰🇷 한글 설명
Socket.IO의 @socket.io/cluster-engine 버전 0.1.1 미만에서 발생하는 취약점입니다. 클러스터 환경에서 공격자가 제어하는 세션 ID를 조회할 때 __proto__와 같은 특수 속성을 사용하면 객체 프로토타입 체인을 통해 접근하게 되어 Node.js 프로세스가 충돌하고 서비스 거부(DoS) 상태가 됩니다.
💡 쉬운 설명
공격자가 특수한 이름을 가진 세션 ID를 보내면 프로그램이 길을 잃고 멈춰버리는 문제입니다. 이로 인해 서비스가 중단되어 정상적인 사용자가 접속할 수 없게 됩니다.
🇺🇸 원문 (English)
Socket.IO enables bidirectional and low-latency communication for every platform. Prior to 0.1.1, @socket.io/cluster-engine uses inherited object properties when looking up attacker-controlled session IDs in clustered deployments. Special property names such as __proto__ or constructor can resolve through the object prototype chain instead of identifying an actual connected client, causing the Node.js process to crash and resulting in denial of service. Applications that do not use @socket.io/cluster-engine are not affected. This issue is fixed in version 0.1.1.
📍 영향받는 시스템
@socket.io/cluster-engine version < 0.1.1 (Socket.IO 클러스터 환경 사용 시)
⚔️ 공격 벡터
공격자가 조작된 세션 ID(예: __proto__)를 포함한 요청을 전송하여 프로토타입 오염 유도
🛡️ 대응 방법
@socket.io/cluster-engine를 0.1.1 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.1.1 미만이면 취약한 상태이며, 0.1.1 이상이면 안전합니다.
npm list @socket.io/cluster-engine 2>/dev/null | grep '@socket.io/cluster-engine@'