AnkiMCPに悪意あるWebページから認証なしで操作される脆弱性
Summary
AnkiMCPのバージョン0.21.0より前では、DNSリバインディング対策が無効になっており、ブラウザ経由でローカルのMCPサーバーに認証なしで接続されるおそれがあります。攻撃者はAnkiの学習データの閲覧や、ノートやデッキの作成・更新を行えるおそれがあり、削除系のツールは既定では非表示です。修正版はバージョン0.21.0以降で、Anki利用者は早めにアドオンを更新してください。
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
AnkiMCPのバージョン0.21.0より前では、DNSリバインディング対策が無効になっており、ブラウザ経由でローカルのMCPサーバーに認証なしで接続されるおそれがあります。攻撃者はAnkiの学習データの閲覧や、ノートやデッキの作成・更新を行えるおそれがあり、削除系のツールは既定では非表示です。修正版はバージョン0.21.0以降で、Anki利用者は早めにアドオンを更新してください。
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| ankimcp | anki-mcp-server-addon | — | — |
Original description The description as published by the source.
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…
Source: CVE.org (CVE Program・cvelistV5) NVD