RATATOSKRATATOSK
로그인

릴리즈

CNCF graduated·incubating 프로젝트 릴리즈 노트의 AI 분석.

프로젝트: NATS해제 ×

NATS

Networking & Messaging2026년 6월 29일

NATS 서버 v2.14.3은 JetStream, MQTT, 클러스터링 버그 수정이 대부분을 차지하는 유지보수 릴리스입니다. MQTT 인증 전 메모리 고갈 및 패닉 문제 2건이 수정되었고, 모니터링 엔드포인트의 JSONP 지원이 제거되는 breaking change가 포함되어 있습니다.

  • securityMQTT 메모리 고갈 및 패닉 수정

    MQTT를 사용하는 서버에 해당합니다. v2.14.3에서 수정: 불완전한 CONNECT 패킷으로 인증 전 메모리를 고갈시킬 수 있던 문제와, PUBLISH remaining-length 언더플로로 서버가 패닉하던 문제입니다. 특히 신뢰할 수 없는 클라이언트에 MQTT를 노출한 경우 업그레이드를 권장합니다.

  • breaking모니터링 엔드포인트 JSONP 지원 제거

    모니터링 엔드포인트(/varz, /connz 등)에서 callback= 파라미터로 JSONP를 쓰던 환경에 해당합니다. v2.14.3에서 완전히 제거되었으므로, 업그레이드 전에 대시보드나 스크립트를 순수 JSON 폴링 방식으로 바꿔야 합니다.

  • breaking리프 trace destination 및 NoAuthUser 권한 검사 강화

    Nats-Trace-Dest를 쓰는 리프 노드 구성과 NoAuthUser를 쓰는 계정에 해당합니다. v2.14.3에서 리프 연결이 Nats-Trace-Dest 발행 권한 검사를 우회하던 문제와, NoAuthUser가 연결 제한을 검사하지 않던 문제가 수정되었습니다. 업그레이드 후 이전에는 허용되던 트래픽이 의도대로 차단될 수 있으니 권한 및 NoAuthUser 설정을 다시 확인하세요.

주요 변경 (7)
  • MQTT 부분 CONNECT 패킷으로 인한 인증 전 메모리 고갈, PUBLISH remaining-length 언더플로 패닉을 v2.14.3에서 수정
  • 권한 검사 강화: 리프 연결이 Nats-Trace-Dest 발행 권한 검사를 우회하지 못하게 되었고, NoAuthUser가 연결 제한을 검사하도록 변경
  • 모니터링 엔드포인트에서 JSONP 콜백 지원 제거 (아직 사용 중인 도구에는 breaking change)
  • JetStream 클러스터링/Raft 안정성 관련 대규모 수정: 종료 시 메타 노드 데이터 레이스, 제한 초과 시 스트림 캐치업 스킵 문제, 메타 복구 후 유령 스트림/컨슈머, 잘림/스냅샷 시 Raft 멤버십 되돌리기 등
  • MQTT 강화: 내부 $MQTT.deliver.pubrel 구독 차단, retained/QoS 재전송 경로에 subscribe deny 규칙 적용, MQTT 비활성 시 WebSocket /mqtt 업그레이드 패닉 수정
  • 파일스토어 및 메모리 스토어 수정: 압축 해제 시 압축/암호화 블록 손상 문제, DeliverLastPerSubject 컨슈머의 NumPending 과다 집계, 카운터 스트림 스테이징 총합 손상 문제 해결
  • 그 외 PROXY/TLS 스니핑, 게이트웨이 CONNECT 레이스, 클러스터 라우트 간 서비스 임포트 트레이싱, CONNZ/SUBSZ 오버플로 방지, JWT/계정 클레임 갱신 등 스무 건 가량의 소규모 수정과 Go 1.26.4로 업데이트
원문

NATS

Networking & Messaging2026년 6월 29일

v2.12.12는 nats-server의 버그 수정 및 안정화 릴리스로, JetStream/Raft 데이터 정합성과 패닉 관련 수정이 다수 포함되었고 모니터링 엔드포인트의 JSONP 지원이 제거되었습니다. 별도의 CVE는 공개되지 않았지만, 잘못된 MQTT 입력으로 유발되는 메모리 소모 및 패닉 경로를 막는 수정이 포함되어 운영자는 보안 관점에서 챙겨볼 필요가 있습니다.

  • securityMQTT 부분 CONNECT / PUBLISH 언더플로 크래시 수정

    MQTT를 사용 중이라면 업그레이드를 권장합니다. 부분 CONNECT 패킷으로 인증 전 메모리를 소모시킬 수 있는 문제와 PUBLISH remaining-length 언더플로로 서버가 패닉하는 문제가 수정되었습니다. 둘 다 인증되지 않은 클라이언트가 잘못된 입력만으로 유발할 수 있습니다.

  • security모니터링/JetStream 사용량 추적의 정수 오버플로 패닉 수정

    CONNZ/SUBSZ 페이지네이션에서 정수 오버플로로 패닉이 발생하던 문제와 JetStream 원격 사용량 갱신 중 길이 정수 오버플로 패닉이 수정되었습니다. 대규모 클러스터나 모니터링 폴링이 빈번한 환경은 업그레이드로 이 패닉 경로를 제거할 수 있습니다.

  • breaking모니터링 엔드포인트 JSONP 지원 제거

    v2.12.12에서 모니터링 엔드포인트의 JSONP 콜백 지원이 무조건 제거되었습니다. /varz, /connz 등에 JSONP 콜백으로 접근하던 도구나 대시보드는 동작하지 않으며, 일반 JSON 요청으로 전환해야 합니다.

주요 변경 (8)
  • 모니터링 엔드포인트의 JSONP 콜백 지원 제거 (아직 JSONP를 쓰는 도구에는 breaking change)
  • MQTT 강화: 부분 CONNECT의 인증 전 메모리 소모 차단, PUBLISH remaining-length 언더플로 패닉 수정, $MQTT.deliver.pubrel 구독 남용 차단, 보존/QoS 리플레이 경로에서 deny 규칙 적용, MQTT 비활성 시 WebSocket /mqtt 업그레이드 패닉 수정
  • JetStream/Raft 데이터 정합성 관련 대규모 수정: filestore 압축 손상, 카운터 스트림 스테이징 손상, 메타 복구 시 유령 스트림/컨슈머, raft 체크포인트/ApplyCommit 정확성, 스트림 캐치업 디싱크, truncate/snapshot 시 멤버십 롤백
  • CONNZ/SUBSZ 페이지네이션과 JetStream 원격 사용량 갱신의 정수 오버플로 패닉 수정, resolver 상위 디렉터리가 없을 때 시작 시 발생하던 nil 포인터 패닉 수정
  • 인증, 라우팅, 모니터링, 클러스터 요청 처리 전반의 패닉/치명적 오류/데이터 레이스 다수 수정
  • 게이트웨이/프록시 관련 수정: 게이트웨이 CONNECT 처리 중 레이스, 신뢰 프록시 추적 중 누수, PROXY 프로토콜 감지, allow_non_tls TLS 스니핑, PROXY v1 주소 체계 파싱
  • 서비스 임포트 응답이 클러스터 라우트 간에도 전달되도록 수정, 임포트/익스포트에서 메시지 트레이싱 정상화, 계정 클레임 갱신 시 JWT 상속 기본 권한과 외부 인증 설정도 올바르게 갱신되도록 수정
  • 그 외 일상적 수정: 연결별 로그를 디버그 레벨로 조정, s2_fast 압축 모드에서 writer 옵션 일관성 확보, 마이그레이션을 위한 스트림/컨슈머 할당 처리 리팩터링
원문

NATS

Networking & Messaging2026년 6월 9일

NATS v2.12.11은 단일 버그 수정 패치입니다. v2.12.7에서 도입된 JetStream regression으로 per-subject 메시지 수 제한이 설정된 스트림에서 'Message Not Found' 오류가 발생하는 문제를 고쳤습니다.

  • breakingmax_msgs_per_subject 설정 중이라면 즉시 업그레이드

    NATS 2.12.7~2.12.10을 운영하면서 스트림에 MaxMsgsPerSubject(max_msgs_per_subject)를 설정했다면, subject 상태가 잘못 추적되어 'Message Not Found' 오류가 간헐적으로 발생할 수 있습니다. 컨슈머가 메시지를 놓치거나 예기치 않게 동작할 수 있으므로, 2.12.11로 바로 업그레이드하세요. 이미 2.14.x를 사용 중이라면 영향받지 않습니다.

주요 변경 (4)
  • JetStream regression 수정: v2.12.7에서 생긴 subject 상태 추적 오류로 max_msgs_per_subject 설정 시 'Message Not Found' 오류 발생
  • Go 런타임 1.25.11로 업데이트
  • v2.14.x는 해당 regression 미적용 — 2.12.7~2.12.10 사용자만 영향받음
  • 그 외 변경 사항 없음
원문

NATS

Networking & Messaging2026년 6월 2일

v2.14.2는 JetStream 데이터 무결성 문제, 락 해제 버그, 프로토콜 손상 위험을 다수 수정한 안정성 패치입니다. JetStream을 운영 중이라면 즉시 업그레이드를 권장합니다.

  • security프로토콜 손상 경로 차단 — WebSocket 및 JetStream 사용자 필수 확인

    $JS.ACK 주제 재작성과 압축 WebSocket 버퍼 처리에서 각각 발생하던 프로토콜 손상 버그가 수정됐습니다. 잘못된 프레임이 생성되면 스트림 상태나 클라이언트 세션이 오염될 수 있습니다. WebSocket 엔드포인트를 외부에 노출하거나 JetStream ACK에 의존하는 환경이라면 보안 이슈에 준해 업그레이드를 우선 처리하세요.

  • breaking두 건의 락 미해제 버그 — 운영 중단 위험, 즉시 패치 필요

    파일스토어와 컨슈머 코드 경로 각각에서, 특정 오류 조건(쓰기 오류, 시작 시퀀스 오류) 발생 시 락이 영원히 반환되지 않는 버그가 있었습니다. 재시작 없이는 회복되지 않으며, 설명되지 않는 JetStream 정지 현상이 있었다면 이 버그가 원인일 가능성이 높습니다. v2.14.2로 즉시 업그레이드하세요.

  • enhancement주제 수가 많은 스트림의 CPU 급등 문제 자동 해결

    파일스토어의 블록 스킵 체크가 주제 수가 매우 많은 스트림에서 CPU를 무한 점유하는 현상이 있었는데, 업그레이드 후 별도 설정 변경 없이 자동으로 해결됩니다. 이 문제를 피하려고 스트림 설계를 억지로 단순화했다면, 업그레이드 후 원래 의도한 구조로 되돌리는 것을 검토해볼 만합니다.

주요 변경 (5)
  • $JS.ACK 주제 재작성과 압축 WebSocket 버퍼 오용, 두 경로에서 발생하던 프로토콜 손상 수정
  • 파일스토어 락 버그 수정 — 쓰기 오류 발생 시 락이 해제되지 않아 서버가 멈추는 문제 해결
  • 컨슈머 락 버그 수정 — 시작 시퀀스 오류 처리 후 락이 반환되지 않던 문제 해결
  • 주제 수가 극단적으로 많은 스트림에서 블록 스킵 체크가 CPU를 무한 점유하던 문제 수정
  • 캐치업 중 비활성 정지 이후 Raft 피어 추적 오류 및 온라인 노드 제거 후 피어 세트 드리프트 수정
원문

NATS

Networking & Messaging2026년 6월 2일

v2.12.10은 프로토콜 수준의 데이터 손상 위험, JetStream Raft/쿼럼 버그, 고카디널리티 스트림의 CPU 폭주 문제를 수정한 버그픽스 릴리스입니다.

  • securityx/crypto 및 nkeys 즉시 업데이트

    golang.org/x/crypto가 v0.52.0으로, nkeys가 v0.4.16으로 업데이트됐습니다. 두 라이브러리는 NATS 인증 흐름의 암호화 연산을 담당합니다. 클러스터가 외부에 노출되어 있거나 분산 인증을 사용한다면 정기 점검을 기다리지 말고 지금 바로 패치하세요.

  • breakingWebSocket·JetStream 사용자는 프로토콜 손상 수정을 위해 즉시 업그레이드 필요

    압축 WebSocket 클라이언트의 버퍼 오용과 $JS.ACK 주제 재작성, 두 가지 독립적인 프로토콜 손상 버그가 수정됐습니다. 둘 다 메시지 프레이밍을 조용히 망가뜨릴 수 있습니다. WebSocket 클라이언트나 ACK가 있는 JetStream 워크로드를 운영 중이라면 2.12.9 이하를 그대로 두는 건 실질적인 위험입니다. 서버를 먼저 업그레이드한 뒤 클라이언트를 업데이트하세요.

  • enhancement고카디널리티 JetStream 스트림 CPU 폭주 수정 — 설정 검토 병행 필요

    주제 수가 매우 많은 스트림에서 블록 스킵 체크가 CPU 폭주를 일으킬 수 있었는데, 해당 케이스에서 체크가 비활성화됐습니다. JetStream 노드에서 수백만 개의 주제를 가진 스트림 운영 중 원인 불명의 CPU 스파이크가 있었다면 이 버그 때문일 가능성이 높습니다. 업그레이드 후 Counter 스트림과 메시지 스케줄 설정도 검토하세요 — 이전에는 통과됐던 잘못된 설정이 새 제약 조건으로 인해 거부될 수 있습니다.

주요 변경 (5)
  • $JS.ACK 주제 재작성 및 압축 WebSocket 버퍼 오용으로 인한 프로토콜 수준 데이터 손상 수정 — 데이터 안전성 문제
  • 캐치업 중 비활성 지연 후 Raft 피어 추적 오류 수정, 온라인 노드 제거 후 피어 셋 드리프트 수정
  • 게이트웨이 URL이 여러 IP로 해석될 때 쿼럼 계산 오류 수정 — 멀티 데이터센터 환경에 영향
  • 주제 수가 극도로 많은 스트림에서 블록 스킵 체크로 인한 CPU 폭주 문제 제거
  • Go 1.25.10 업그레이드 및 x/crypto, nkeys, jwt/v2 의존성 업데이트
원문

NATS

Networking & Messaging2026년 5월 20일

NATS v2.14.1은 JetStream, 클러스터링, 핵심 메시징 전반에서 30여 개 버그를 수정한 대규모 패치 릴리스로, 데이터 무결성과 패닉 수준의 문제가 포함되어 있어 빠른 배포가 권장됩니다.

  • securitygolang.org/x/crypto v0.51.0으로 업데이트 — nats-server를 임베드한 경우 즉시 재빌드

    x/crypto와 x/sys 의존성 업데이트에는 CVE 수정이 포함되는 경우가 많습니다. nats-server를 Go 라이브러리로 임베드해 사용하는 엣지/IoT 환경이라면 재빌드 후 재배포가 필요합니다. 일반 배포 환경은 바이너리 업그레이드만으로 충분합니다. 메시징 서버의 암호화 라이브러리 업데이트는 선택이 아닙니다.

  • breaking배포 전 2.14 업그레이드 가이드 필수 확인 — 2.13.x 버전은 건너뜀

    릴리스 노트는 2.13.x가 아닌 2.12.x 대비 하위 호환성 주의사항을 안내합니다. 2.13.x 마이너 버전은 출시된 적이 없기 때문입니다. 2.12.x에서 올라오는 경우라면 2.14 업그레이드 가이드를 반드시 먼저 읽고, JetStream 컨슈머 및 스트림 API 변경이 클라이언트에 미치는 영향을 점검하세요.

  • enhancement새 클라이언트 트래픽 /varz 지표를 모니터링 대시보드에 즉시 추가

    신규 지표 4종(in/out client msgs/bytes)을 활용하면 클라이언트 트래픽과 클러스터·리프노드 내부 트래픽을 명확히 구분할 수 있습니다. Prometheus 스크레이프나 대시보드에 바로 연결해 기준값을 쌓아두세요. 혼합 트래픽을 처리하는 서버의 용량 계획에 특히 유용합니다. 기존에는 전체 지표에서 클라이언트 부하를 추정해야 했지만, 이제 직접 측정이 됩니다.

주요 변경 (5)
  • JetStream Raft, 컨슈머 상태, 파일스토어 암호화, 클러스터 라우팅 전반에 걸쳐 30개 이상 버그 수정
  • /varz에 클라이언트 전용 트래픽 지표 4종 추가 (in_client_msgs, in_client_bytes, out_client_msgs, out_client_bytes)
  • 워크큐 스트림, max_deliver, purge/compaction 상황에서 컨슈머 재전달 드리프트 문제 수정
  • 암호화 모드 전환 시 파일스토어 블록 캐시 손상 패치 (데이터 무결성 관련 핵심 수정)
  • TLS 핸드셰이크 타임아웃 로그를 debug 레벨로 강등해 클러스터 운영 중 로그 노이즈 감소
원문

NATS

Networking & Messaging2026년 5월 20일

v2.12.9는 JetStream 안정성에 집중한 버그 수정 릴리스로, Raft 정합성 결함, 컨슈머 상태 손상, 파일스토어 암호화 버그 등 데이터 무결성에 직결된 문제들을 수정했습니다.

  • securitygolang.org/x/crypto v0.51.0 업데이트 확인 필요

    Go 1.25.10과 함께 x/crypto 의존성이 업데이트됐습니다. 조직에서 SBOM이나 CVE 추적 도구를 운영 중이라면 v2.12.9 업그레이드 후 갱신된 패키지가 제대로 반영됐는지 확인하세요. 애플리케이션 레벨에서 별도 회피 방법은 없으므로 서버 업그레이드가 유일한 조치입니다.

  • breaking암호화된 JetStream 운영 시 즉시 업그레이드 — 파일스토어 손상 위험

    암호화 모드를 전환할 때 블록 단위 데이터 손상이 발생할 수 있는 버그가 수정됐습니다(#8105, #8166). 기존 스트림에서 암호화 설정을 변경한 적이 있다면, 업그레이드 후 해당 스트림 상태를 점검하세요. 이미 손상이 발생했다면 암호화 전환 이전 스냅샷에서 복구해야 합니다.

  • enhancement신규 /varz 클라이언트 트래픽 지표를 용량 계획에 활용하세요

    새로 추가된 4개 지표를 활용하면 클러스터 내부 트래픽과 실제 클라이언트 부하를 분리해서 볼 수 있습니다. 지금 바로 Prometheus 스크레이프 설정에 추가하면 클러스터 적정 규모 산정과 트래픽 과다 클라이언트 탐지에 바로 쓸 수 있고, 커넥션별 데이터를 파싱할 필요도 없습니다.

주요 변경 (5)
  • /varz에 클라이언트 전용 트래픽 지표 4종 추가(in/out_client_msgs, in/out_client_bytes)
  • 파일스토어 암호화 모드 전환 시 블록 단위 손상 유발 버그 수정 — 암호화된 JetStream 운영 환경에 중요
  • workqueue/interest 스트림에서 max_deliver, 퍼지, 컴팩션 이후 컨슈머 재전달 상태 오류 다수 수정
  • Raft 락 경합 시 클러스터 정보 처리 중 발생하던 데드락 수정
  • WAL 잘라내기 캐시 무효화, 체크포인트 취소, 잘린 엔트리 패닉 등 Raft 정합성 개선
원문

NATS

Networking & Messaging2026년 4월 30일

NATS v2.14.0은 2.13.x를 건너뛰고 출시됐습니다. JetStream 스케줄링, 고속 배치 퍼블리싱, 컨슈머 리셋 API, Raft 데이터 손실 방지 수정이 핵심입니다. 업그레이드 전 마이그레이션 가이드 확인이 필수입니다.

  • breaking2.13.x 건너뜀 — 반드시 2.14 업그레이드 가이드를 먼저 읽으세요

    이번 릴리스는 2.12.x에서 바로 2.14.x로 올라갑니다. ACL로 JetStream ACK·플로우 컨트롤 주제를 제어하고 있다면 지금 당장 주목해야 합니다. 새 도메인 인식 형식($JS.ACK.domain.acchash.stream.consumer.>)은 현재 기본 비활성이지만 v2.15에서 기본 활성화됩니다. v2.15 업그레이드 전에 ACL 규칙을 미리 업데이트해 두세요.

  • breakingRaft 스냅샷 손상 시 기동 거부 — 복구 절차를 미리 검증하세요

    기존에는 스냅샷이 손상되거나 로그와 정렬이 맞지 않아도 노드가 조용히 기동됐습니다. 이제는 기동 자체를 거부합니다. 올바른 방향이지만, 비정상 종료를 경험한 클러스터가 있다면 업그레이드 전에 스냅샷 무결성을 먼저 점검하세요. 운영 런북에도 이 시나리오의 복구 절차를 추가해 두는 게 좋습니다.

  • enhancementConsumer Reset API로 컨슈머 재설정 작업이 훨씬 간단해졌습니다

    기존에는 컨슈머를 이전 시퀀스로 되돌리려면 삭제 후 재생성하는 번거로운 과정이 필요했습니다. 새 $JS.API.CONSUMER.RESET API를 쓰면 그 자리에서 바로 되감기가 됩니다. 컨슈머 재처리나 장애 복구 시나리오를 다루는 내부 도구나 런북이 있다면 이 API를 쓰도록 업데이트하세요.

주요 변경 (5)
  • JetStream 고속 배치 퍼블리싱 지원 (ADR-50)
  • Nats-Schedule 헤더로 반복/크론 기반 메시지 스케줄링 추가 (ADR-51)
  • 컨슈머 삭제 없이 이전 시퀀스로 되돌리는 Consumer Reset API 도입
  • 도메인 인식 ACK/FC 주제 형식 추가 (js_ack_fc_v2 플래그, v2.15에서 기본값으로 전환 예정)
  • 스냅샷이 손상되거나 없을 경우 Raft 노드 기동 거부로 데이터 손실 방지
원문

NATS

Networking & Messaging2026년 4월 27일

NATS v2.11.17은 /connz 모니터링 엔드포인트의 JWT 토큰 노출 등 보안 결함과 다수의 안정성 버그를 수정한 패치 릴리스입니다.

  • security즉시 패치: /connz에서 Bearer JWT가 노출됐습니다

    모니터링 포트(기본 8222)가 내부망이라도 접근 가능한 환경이라면 긴급 패치 대상입니다. 노출된 Bearer 토큰은 재사용 공격(replay attack)에 악용될 수 있습니다. 2.11.17로 즉시 업그레이드하고, 모니터링 엔드포인트에 접근 이력이 있는 경우 관련 JWT를 전부 교체하세요. 당장 업그레이드가 어렵다면 방화벽으로 모니터링 포트를 우선 차단하십시오.

  • securityCLI 인자의 시크릿이 모니터링 출력에 노출됐습니다

    라우트·클러스터 URL에 자격증명을 직접 포함해 CLI로 전달하는 구성이라면, 해당 시크릿이 모니터링 출력에 그대로 표시됐습니다. 과거 모니터링 로그를 점검하고 노출 가능성이 있는 자격증명을 교체하세요. 장기적으로는 CLI 인자 대신 설정 파일이나 환경 변수 기반 시크릿 주입 방식으로 전환하는 게 좋습니다.

  • breaking반복 CONNECT 처리 방식 변경 — 커스텀 클라이언트 동작 확인 필요

    동일 연결에서 CONNECT 메시지를 여러 번 보내면 이제 구독 목록이 초기화됩니다. 표준적이지 않은 연결 패턴을 사용하는 커스텀 클라이언트나 인하우스 구현체가 있다면, 프로덕션 업그레이드 전에 구독이 예기치 않게 사라지는 현상이 없는지 반드시 검증하세요.

주요 변경 (5)
  • /connz 모니터링 엔드포인트에서 Bearer JWT가 노출되던 자격증명 유출 문제 수정
  • CLI 인자로 전달된 라우트·클러스터 URL의 시크릿이 모니터링 출력에서 가려지도록 수정
  • 동일 연결에서 CONNECT 메시지가 반복될 경우 구독 목록을 올바르게 초기화하도록 수정
  • 자정을 넘는 유효 기간을 가진 JWT claims의 검증 오류 수정
  • 리프노드 압축 협상 시 발생 가능한 패닉 및 메시지 헤더 설정 시 입력 버퍼가 변조되던 버그 수정
원문

NATS

Networking & Messaging2026년 4월 14일

v2.12.7은 ACL 우회 보안 버그, 리프노드 패닉, JetStream 컨슈머 stuck 상태, 그리고 2.12.6에서 유입된 MQTT JWT 회귀 버그를 수정한 버그픽스 릴리스입니다.

  • securitydeny ACL이나 큐 그룹을 사용 중이라면 즉시 업그레이드 필요

    이번 릴리스에서 두 가지 ACL 시행 버그가 수정됐습니다. 와일드카드가 중첩된 deny ACL이 제대로 적용되지 않았고, 큐 구독이 비큐 deny 규칙을 통째로 우회할 수 있었습니다. deny 기반 ACL, 특히 와일드카드나 큐/비큐 혼합 구독을 보안 모델에 활용 중이라면 필수 업그레이드입니다. 업그레이드 후 deny 규칙이 의도대로 동작하는지 반드시 검증하세요.

  • breaking2.12.6에서 MQTT + auth callout을 쓰고 있다면 즉시 업그레이드

    2.12.6에서 MQTT 클라이언트의 JWT가 auth callout 서비스로 전달되지 않는 회귀 버그가 있었습니다. 인증 로직이 조용히 무시되거나 실패했을 가능성이 있습니다. 2.12.7로 업그레이드 후 MQTT 클라이언트 인증이 전 구간에서 정상 동작하는지 확인하세요.

  • enhancementJetStream 스토리지 한도, 이제 재시작 없이 상향 조정 가능

    max_mem_store와 max_file_store를 config reload만으로 늘릴 수 있게 됐습니다. 단, 줄이는 것은 여전히 reload로 지원되지 않습니다. 피크 트래픽 구간에 다운타임 없이 용량을 확장할 수 있어 운영 유연성이 높아졌습니다. 평소 여유 있게 스토리지를 설계하되, 필요 시 즉각 확장하는 방식으로 활용하세요.

주요 변경 (5)
  • ACL 보안 수정: 와일드카드 deny 패턴 중첩 시 미적용 버그, 큐 구독이 비큐 deny 규칙을 우회하던 문제 해결
  • MQTT 회귀 버그 수정: 2.12.6부터 MQTT 클라이언트의 JWT가 auth callout에 전달되지 않던 문제 해결
  • JetStream 컨슈머 수정: 삭제된 메시지가 pending 상태에 남아 max_ack_pending이 stuck되는 문제 해결
  • 리프노드 안정성: 계정 resolve 실패 시 패닉 및 pre-CONNECT 가드 관련 패닉 다수 수정
  • JetStream 성능: subject purge가 관련 filestore 블록만 스캔하도록 개선, 쓰기 직후 캐시 과도 축출 문제 수정
원문

NATS

Networking & Messaging2026년 4월 14일

v2.11.16은 보안 패치 릴리스로, 큐 구독의 ACL 우회, 리프노드 인바운드 메시지 권한 누락, 와일드카드 deny 패턴 미적용 등 여러 인가 취약점을 수정했습니다. ACL에 의존하는 환경이라면 즉시 업그레이드해야 합니다.

  • security큐 구독을 통한 ACL 우회 — 즉시 패치 필요

    비큐 구독에 적용된 deny 규칙을 큐 구독자가 우회할 수 있었습니다. 멀티테넌트 환경이나 subject 단위 접근 제어를 쓰고 있다면 기존 deny 규칙이 제대로 적용되지 않았을 가능성이 있습니다. v2.11.16으로 업그레이드하고, ACL 설정 전체를 재검토하세요.

  • security리프노드 ACL 검사 누락 — 리프 설정 점검 필수

    리프노드 인바운드 메시지가 ACL 권한 검사를 통과하지 않고 처리되는 경로가 존재했습니다. 계정별 또는 사용자별 권한을 리프노드에 적용 중이라면, 무단 데이터 접근이 발생했을 가능성을 배제할 수 없습니다. 업그레이드 후 리프노드 자격증명과 권한 설정을 재확인하세요.

  • breakingno_auth_user 범위 변경 — 리프노드 연결에 영향 가능

    no_auth_user가 이제 클라이언트 연결에만 적용됩니다. 리프노드 등 비클라이언트 연결에서 no_auth_user를 암묵적으로 사용하던 구성이 있다면, 업그레이드 후 해당 연결에 명시적인 자격증명이 필요해집니다. 프로덕션 리프노드에 배포하기 전에 스테이징 환경에서 반드시 검증하세요.

주요 변경 (5)
  • 큐 구독이 비큐(non-queue) ACL deny 규칙을 우회하던 문제 수정
  • ACL deny 블록의 중첩 와일드카드 패턴이 올바르게 적용되지 않던 문제 수정
  • no_auth_user 옵션이 클라이언트 연결로만 범위 제한됨
  • 리프노드 인바운드 메시지 전체 경로에서 ACL 권한 검사가 누락되던 문제 수정 및 pre-CONNECT 패닉 버그 수정
  • WebSocket 전용 no_auth_user 설정 시 fast-path에서 올바르게 적용되도록 수정
원문

NATS

Networking & Messaging2026년 3월 24일

v2.12.6은 MQTT, JetStream, WebSocket, 리프노드, mTLS 등 핵심 서브시스템에서 CVE 11건을 수정한 긴급 보안 릴리스입니다. 2.12.5에서 발생한 JetStream 컨슈머 할당 손실 회귀 버그도 함께 수정됐습니다.

  • security즉시 업그레이드 필요 — 핵심 서브시스템 전반에 CVE 11건 패치

    이번 릴리스는 MQTT(3건), JetStream(2건), 리프노드(2건), WebSocket(1건), mTLS(1건), 커맨드라인 자격증명(1건), 퍼블리시 권한(1건)에 걸친 CVE를 모두 수정합니다. 이 기능들을 프로덕션에서 하나라도 사용 중이라면 구버전을 유지할 이유가 없습니다. 자신의 배포 환경에서 영향 받는 서브시스템을 확인하고 MQTT·리프노드 사용자는 특히 빠르게 적용하세요.

  • breakingJWT 크기 1MB 제한이 신규 적용됨

    1MB를 초과하는 JWT는 거부됩니다. 대부분의 환경에는 영향이 없지만, 대규모 권한 세트나 복잡한 계정 구조로 JWT를 발급하는 경우 업그레이드 전에 JWT 크기를 반드시 확인하세요. 오퍼레이터 JWT와 동적으로 발급되는 자격증명을 점검하는 것이 좋습니다.

  • breaking2.12.5에서 JetStream 컨슈머 할당 무음 유실 가능 — 업그레이드 후 확인 필수

    2.12.5의 회귀 버그로 인해 비동기 스냅샷을 사용하는 클러스터 환경에서 스트림 업데이트 시 컨슈머 할당이 조용히 사라질 수 있었습니다. 2.12.5 클러스터 JetStream을 운영 중이라면 업그레이드 전후로 컨슈머 수를 비교해 데이터 손실 여부를 확인하세요. 이번 릴리스 주기에서 운영 측면에서 가장 위험한 버그입니다.

주요 변경 (5)
  • MQTT, JetStream, WebSocket, 리프노드, mTLS, 자격증명 처리 관련 CVE 11건 패치
  • JetStream 회귀 버그 수정: 비동기 스냅샷 활성화 클러스터에서 스트림 업데이트 시 컨슈머 할당이 유실되던 문제 (2.12.5에서 도입)
  • JWT 크기 상한 1MB 신규 적용
  • MQTT 보안 강화: 모니터링 엔드포인트에서 패스워드 노출 차단, 암묵적 권한 범위 제한, 세션 복원 시 클라이언트 ID 검증 추가
  • WebSocket 파서 재작성으로 압축 프레임의 무제한 메모리 할당 문제 해결
원문

NATS

Networking & Messaging2026년 3월 24일

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 계정 퍼지 시 경로 순회 버그 및 대형 예약 오버플로우로 인한 티어 한도 위반 버그 수정
원문