🇰🇷 한글 설명
Nocturne Memory 2.4.1 이전 버전에서 API_TOKEN이 설정되지 않으면 인증이 완전히 우회되며, 0.0.0.0 바인딩과 CORS 설정으로 인해 같은 네트워크의 모든 클라이언트가 메모리 API에 접근할 수 있습니다. 공격자는 system://boot와 core://* URI를 포함한 모든 메모리 항목을 읽기/쓰기/삭제하여 프롬프트 인젝션으로 에이전트 세션을 제어할 수 있습니다.
💡 쉬운 설명
메모리 서버의 보안 키가 비어있으면 누구나 접근할 수 있게 됩니다. 같은 네트워크의 공격자가 AI 에이전트의 메모리를 조작하여 악의적인 명령을 실행하게 할 수 있습니다.
🇺🇸 원문 (English)
Nocturne Memory is a lightweight, rollbackable, and visual Long-Term Memory Server for MCP Agents. Prior to 2.4.1, when API_TOKEN is unset or empty, the BearerTokenAuthMiddleware bypasses authentication for all HTTP requests. Combined with the default 0.0.0.0 host binding and CORS allow_origins=["*"], operators following the Docker setup without explicitly setting API_TOKEN expose the full Knowledge-Graph read/write API to any LAN-reachable client. An attacker on the same network can read, write, or delete all memory entries — including system://boot and core://* URIs that auto-load into downstream agent sessions, enabling persistent prompt-injection. This vulnerability is fixed in 2.4.1.
📍 영향받는 시스템
Nocturne Memory < 2.4.1 (모든 버전)
⚔️ 공격 벡터
API_TOKEN 미설정 상태에서 LAN 내 클라이언트가 HTTP 요청으로 /memory 엔드포인트에 인증 없이 접근
🛡️ 대응 방법
2.4.1로 업그레이드하거나, 즉시 API_TOKEN 환경변수 설정 및 CORS allow_origins 제한, 0.0.0.0에서 127.0.0.1로 바인딩 변경
🔧 검증 코드
Version 2.4.1 이상이면 안전함. 2.4.1 미만이거나 패키지가 없으면 설치/업그레이드 필요. Docker의 경우 docker inspect로 이미지 태그 확인.
pip show nocturne-memory 2>/dev/null | grep Version