← All advisories
CVE-2026-59971criticalBroken access control2026-09-15

CVE-2026-59971: MySQL MCP Server in SSE mode runs anyone's SQL, including via DNS rebinding

Before 0.4.2, mysql-mcp-server with MCP_TRANSPORT=sse binds to 0.0.0.0 with no authentication and no DNS rebinding protection. A network attacker, or a malicious web page through the victim's browser, can call execute_sql against the database.

01.

What it is

Setting MCP_TRANSPORT=sse makes src/mysql_mcp_server/server.py build SseServerTransport without security_settings or enable_dns_rebinding_protection. The Starlette routes /, /sse and /messages/ have no authentication, and the service binds to 0.0.0.0 by default.

A network attacker can reach the execute_sql tool directly, or use DNS rebinding so a victim's browser relays requests to a locally bound server, and run queries with the configured MySQL user's rights.

02.

How to check

  1. Affected: mysql-mcp-server (PyPI) before 0.4.2 when run with MCP_TRANSPORT=sse.
  2. The default stdio transport isn't affected by this issue.
03.

How to fix

  1. Upgrade mysql-mcp-server to 0.4.2 or later.
  2. Give the MCP server a MySQL user with the least privileges it needs, and don't expose the SSE port to other networks.
pip show mysql-mcp-server | grep -i version
04.

Sources

More advisories for this tool
The weekly email

One email a week. Only what changed.

New advisories, CVEs and fixes for Lovable, Bolt, v0, Replit, Base44 and Cursor apps. No roundups of things you already read.

Free. The list is new, so the first issues go out once there are readers. Unsubscribe from any email in one click. We never sell or share addresses.