🇰🇷 한글 설명
Let's Chat 0.4.0부터 0.4.8 버전에서 인증된 공격자가 데이터베이스에 존재하지 않는 24자리의 16진수 룸 파라미터를 제공하여 서버를 중단시킬 수 있는 Null 역참조 취약점이 발견되었습니다. 공격자가 조작된 GET /messages 요청을 보내면 비동기 Mongoose 콜백에서 처리되지 않은 TypeError가 발생하여 Node.js 서버 프로세스가 종료됩니다.
💡 쉬운 설명
로그인한 사용자가 존재하지 않는 방 번호를 입력하여 채팅 서버를 강제로 꺼버릴 수 있는 문제입니다. 이로 인해 서비스가 일시적으로 중단되어 다른 사용자들이 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Let's Chat 0.4.0 through 0.4.8 contains a null dereference vulnerability that allows authenticated attackers to crash the server by supplying a valid 24-character hex string room parameter that matches no document in the database. Attackers can send a crafted GET /messages request causing an uncaught TypeError in an asynchronous Mongoose callback that terminates the Node.js server process, with the same defect reachable through multiple code paths including the socket.io interface.
📍 영향받는 시스템
Let's Chat 0.4.0 ~ 0.4.8
⚔️ 공격 벡터
인증된 공격자가 조작된 24자 16진수 룸 파라미터를 포함한 GET /messages 요청을 전송
🛡️ 대응 방법
해당 취약점이 해결된 최신 버전으로 업데이트하거나 입력값에 대한 유효성 검사 로직을 추가
🔧 검증 코드
명령어 결과에 0.4.0에서 0.4.8 사이의 버전이 표시되면 취약한 버전이 설치된 상태입니다.
npm list lets-chat | grep -E 'lets-chat@0\.(4\.[0-8])'