🇰🇷 한글 설명
AnkiMCP는 AI 어시스턴트가 Anki 플래시카드 앱과 상호작용할 수 있도록 MCP 서버를 구현한 Anki 애드온이다. 0.21.0 이전 버전에서는 FastMCP의 DNS 리바인딩 보호가 전역적으로 비활성화되어 있고, 기본 로컬 HTTP 리스너(127.0.0.1:3141)에 인증이나 Host/Origin 검증이 없어, 악성 웹페이지가 브라우저를 통해 loopback으로 요청을 리바인딩하여 컬렉션 조회 및 노트/덱 생성·수정이 가능했다.
💡 쉬운 설명
Anki와 AnkiMCP가 실행 중일 때 악성 웹페이지를 방문하면, 웹사이트가 내 컴퓨터의 Anki 데이터에 몰래 접근해 읽거나 수정할 수 있습니다. 0.21.0 버전에서 이 문제가 수정되었습니다.
🇺🇸 원문 (English)
AnkiMCP is an Anki addon that implements an MCP server, enabling AI assistants to interact with the Anki flashcard application. Prior to version 0.21.0, `anki_mcp_server/mcp_server.py` globally disables FastMCP DNS-rebinding protection through `TransportSecuritySettings` with `enable_dns_rebinding_protection=False`, including for the default local Streamable HTTP listener. The defaults in `anki_mcp_server/config.py` enable `http_enabled` on `127.0.0.1:3141`, with an empty `http_path` selecting the root endpoint. No bearer token, API key, session secret, strict `Host` allowlist or strict `Origin` allowlist is enforced before `initialize`, `tools/list` and `tools/call` reach MCP dispatch. A victim who visits a malicious web page while Anki and the listener are running can have browser requests rebound to loopback, allowing the attacker to `initialize` MCP, enumerate tools, read the local collection, and perform enabled non-destructive note/deck creation or updates. The attacker needs neither LAN position nor a local process. Available operations depend on enabled tool filters; destructive tools are hidden unless `enabled_destructive_tools` is opted into, limiting deletion-level impact but not the exposed read/write operations. The reported harness confirms real MCP tool dispatch with substituted Anki bridge responses rather than demonstrating destructive changes to a real collection. Disabling protection for tunnels/proxies also disables it for the normal loopback configuration. This issue is fixed in version 0.21.0.
📍 영향받는 시스템
AnkiMCP Anki 애드온 0.21.0 이전 버전
⚔️ 공격 벡터
피해자가 악성 웹페이지를 방문하면 DNS 리바인딩으로 브라우저 요청이 127.0.0.1:3141 로컬 MCP 서버로 전달되어 인증 없이 도구를 호출해 컬렉션을 읽고 쓴다.
🛡️ 대응 방법
AnkiMCP를 0.21.0 이상으로 업데이트하고, 필요하지 않으면 HTTP 리스너를 비활성화하며, 파괴적 도구는 명시적으로 활성화하지 않는다.
🔧 검증 코드
출력된 버전이 0.21.0 미만이면 취약하므로 업데이트가 필요하고, 0.21.0 이상이거나 AnkiMCP가 설치되지 않았다면 이 취약점의 영향을 받지 않는다.
grep -rh '"version"' ~/.local/share/Anki2/addons21/*/manifest.json 2>/dev/null | grep -i anki
💻 영향받는 소프트웨어
IBM WebSphere Application Server