CVE-2026-61546
AnkiMCP: DNS rebinding reaches unauthenticated local AnkiMCP HTTP tools
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.8
AnkiMCP: DNS rebinding reaches unauthenticated local AnkiMCP HTTP tools
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.
- Record
CVE-2026-61546- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N - Weakness
- CWE-346, CWE-350
- Updated
- 2026-11-02
EUVDEUVD-2026-112504
8.8
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.
- Record
EUVD-2026-112504- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N - Updated
- 2026-11-02
NVD
8.8
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.
- Record
CVE-2026-61546- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-346, CWE-350
- Updated
- 2026-11-02
OSV
8.8
AnkiMCP: DNS rebinding reaches unauthenticated local AnkiMCP HTTP tools
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.
- Record
CVE-2026-61546- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N - Weakness
- CWE-346, CWE-350
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-61546 is a high vulnerability (CVSS 8.8) in Ankimcp Anki-mcp-server-addon, published October 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 7th percentile. No source names a fixed version.
References
github.com/ankimcp/anki-mcp-server-addon/security/advisories/GHSA-j9xx-59ph-wmr6
github.com/ankimcp/anki-mcp-server-addon/commit/6dcb6939b0ecc0801f45cf0d241dc946aad1654f
github.com/ankimcp/anki-mcp-server-addon/commit/d5306ff42d68f1e3b82a96878eb059437e820316
github.com/ankimcp/anki-mcp-server-addon/tree/v0.21.0
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61546.json
nvd.nist.gov/vuln/detail/CVE-2026-61546