RATATOSKRATATOSK
로그인

NATS

v2.11.15Networking & Messaging
2026년 3월 25일

v2.11.15는 MQTT, 리프노드, WebSocket, JetStream, mTLS에 걸쳐 CVE 11건을 패치하는 긴급 보안 릴리스입니다. 해당 기능을 사용 중이라면 즉시 업그레이드해야 합니다.

  • securityCVE 11건 — 즉시 업그레이드 필수

    이번 릴리스는 NATS의 주요 기능 전반에 걸친 CVE를 패치합니다. MQTT 사용자의 노출 범위가 가장 넓은데, 모니터링 엔드포인트에서의 비밀번호 유출, 클라이언트 ID 불일치를 이용한 세션 탈취, 잘못된 패킷으로 인한 패닉이 모두 포함됩니다. WebSocket 배포 환경에서는 DoS에 악용될 수 있는 무제한 메모리 할당 경로가 있었고, 리프노드와 mTLS도 별도 취약점이 수정됐습니다. 개발, 스테이징, 프로덕션 전 클러스터를 v2.11.15로 올리세요.

  • breakingMQTT 클라이언트 ID 문자 제한 — 기존 클라이언트 연결 불가 가능성

    MQTT 클라이언트 ID에 NATS 특수문자(`.`, `>`, `*`, 공백, 탭)가 포함되면 연결이 거부됩니다. IoT 기기 명명 규칙에 이 문자를 쓰는 경우가 많으니 업그레이드 전 전체 클라이언트 ID를 점검하세요. 아울러 기존에 더 넓은 범위로 허용되던 암묵적 권한이 `$MQTT.sub.*`와 `$MQTT.deliver.pubrel.*`로 축소됐으니, 이에 의존하는 클라이언트가 있다면 권한 설정을 재검토해야 합니다.

  • enhancement트레이스 로그와 모니터링 엔드포인트의 시크릿 자동 마스킹

    이전까지는 커맨드라인 시크릿이 expvar 모니터링 출력과 트레이스 로그에 그대로 노출됐습니다. 이제 자동으로 마스킹됩니다. 모니터링 포트를 스크래핑하거나 트레이스 로그를 외부 시스템(로그 수집기, SIEM 등)으로 전송해왔다면, 과거 수집 데이터에 시크릿이 포함됐을 수 있으니 데이터 로테이션이나 삭제를 검토하세요. 추가 설정 없이 자동 적용됩니다.

주요 변경 (5)

  • CVE 11건 패치 — MQTT(3), 리프노드(2), JetStream(2), WebSocket(1), mTLS(1), 자격증명 노출(1), 퍼블리시 권한 우회(1)
  • MQTT 보안 강화: 모니터링/어드바이저리 엔드포인트에서 비밀번호 노출 차단, 클라이언트 ID 불일치 시 세션 복원 차단, 암묵적 권한을 $MQTT 접두어로 제한
  • WebSocket 파서 개선으로 압축/비압축 프레임의 무제한 메모리 할당 경로 차단 — DoS 공격 벡터 제거
  • Nats-Trace-Dest 헤더에 퍼블리시 권한 검사 추가 — 권한 없는 클라이언트는 무시되지 않고 오류 반환
  • JetStream 계정 퍼지 시 경로 순회 버그 및 대형 예약 오버플로우로 인한 티어 한도 위반 버그 수정