🇰🇷 한글 설명
Socket.IO의 특별히 제작된 패킷이 서버에서 포착되지 않은 예외를 유발하여 Node.js 프로세스를 강제로 종료시킬 수 있다.
[email protected] 이후 버전과 2.x 브랜치에서 수정되었다.
💡 쉬운 설명
Socket.IO는 실시간 채팅이나 알림 같은 기능을 하는 라이브러리인데, 악의적인 메시지를 보내면 서버가 멈춰버린다. 최신 버전으로 업데이트하면 이 문제가 해결된다.
🇺🇸 원문 (English)
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit `15af22fc22` which has been included in `
[email protected]` (released in May 2023). The fix was backported in the 2.x branch as well with commit `d30630ba10`. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
📍 영향받는 시스템
Socket.IO < 4.6.2 (2.x 버전 패치 전)
⚔️ 공격 벡터
특별히 제작된 Socket.IO 패킷을 서버로 전송하여 uncaught exception 유발
🛡️ 대응 방법
Socket.IO를 4.6.2 이상으로 업그레이드하거나 error 이벤트 리스너 추가
🔧 검증 코드
버전 번호가 4.6.2 이상이면 안전하고, 그 이하면 즉시 업그레이드 필요
npm list socket.io 2>/dev/null | grep socket.io | head -1