🇰🇷 한글 설명
Signal K Server 2.25.0 미만 버전의 WebSocket 구독 처리 로직에 존재하는 정규표현식 서비스 거부(ReDoS) 취약점입니다. 공격자가 미인증 상태에서 context 파라미터에 특수문자를 주입하여 정규식 백트래킹을 유발, 서버의 CPU를 100% 점유시켜 완전한 서비스 거부를 초래합니다.
💡 쉬운 설명
배(보트)용 Signal K 서버의 연결 요청 처리 부분에 버그가 있어서, 특별한 문자를 보내면 서버가 과도하게 생각하다가 멈춰버립니다. 로그인 없이도 누구나 이 공격을 할 수 있습니다.
🇺🇸 원문 (English)
Signal K Server is a server application that runs on a central hub in a boat. Versions prior to 2.25.0 are vulnerable to an unauthenticated Regular Expression Denial of Service (ReDoS) attack within the WebSocket subscription handling logic. By injecting unescaped regex metacharacters into the `context` parameter of a stream subscription, an attacker can force the server's Node.js event loop into a catastrophic backtracking loop when evaluating long string identifiers (like the server's self UUID). This results in a total Denial of Service (DoS) where the server CPU spikes to 100% and becomes completely unresponsive to further API or socket requests. Version 2.25.0 contains a fix.
📍 영향받는 시스템
Signal K Server 버전 2.25.0 미만 (모든 이전 버전)
⚔️ 공격 벡터
WebSocket을 통해 미인증 상태에서 악의적으로 조작된 정규식 메타문자를 context 파라미터에 전달
🛡️ 대응 방법
Signal K Server를 2.25.0 이상으로 업그레이드
🔧 검증 코드
버전이 2.25.0 미만이면 취약함(즉시 업그레이드), 2.25.0 이상이거나 설치되지 않음이 표시되면 안전
npm list signalk-server 2>/dev/null | grep signalk-server || npm list -g signalk-server 2>/dev/null | grep signalk-server