무슨 일이 있었나
obsidian-tc의 Streamable HTTP 전송은 Host/Origin 헤더 검증 및 DNS-리바인딩 보호 기능이 부족합니다. 문서화된 루프백 구성이 auth.mode=none을 사용할 때, 악성 웹 페이지는 로컬 MCP 엔드포인트에 교차 출처(또는 DNS-리바인딩) 요청을 보내 http-local 호출자로서 제한 없는 볼트 접근 권한을 얻을 수 있습니다 — 이는 동일 제품의 볼트 IDOR에 대한 브라우저 기반 대체 경로입니다.
왜 중요한가
CVE-2026-77366과 결합하면, 원격 공격자는 사용자의 로컬 Obsidian 볼트 MCP 서버에 브라우저 전용 경로(조작된 페이지 방문만으로)를 통해 접근할 수 있으며, 이를 통해 볼트 파일 읽기/쓰기/삭제가 가능합니다 — 이는 개발 서버를 대상으로 하는 고전적인 DNS-리바인딩 공격이 활용하는 드라이브바이 로컬호스트 접근의 MCP 버전입니다.
공격 경로
Streamable HTTP 전송은 Host 또는 Origin 헤더를 검증하지 않으며 DNS-리바인딩 보호 기능도 활성화하지 않습니다. auth.mode=none을 사용하는 문서화된 루프백 구성에서, 악성 웹 페이지는 로컬 MCP 엔드포인트에 요청을 보내 http-local 호출자를 통해 제한 없는 볼트 접근 권한을 얻습니다.
영향받는 시스템
obsidian-tc (The-40-Thieves) < 1.3.1 (Streamable HTTP 전송)
완화 방안
host/origin/DNS-리바인딩 검증을 활성화하는 obsidian-tc 1.3.1(커밋 6428bfe6fdfd43aa7b4b369be3aecd6a268fb928; PR #74)로 업그레이드하세요. 민감한 볼트에 대해서는 auth.mode=none에 의존하지 마십시오.