何が起きたか
MySQL MCP ServerのSSE/HTTPトランスポートモードは、Origin/Host検証を強制するために必要なセキュリティ設定を省略しており、被害者のブラウザからのダイレクト攻撃またはDNSリバインディング攻撃を介して、バックアップデータベースに対する認証されていないリモートSQL実行を許可します。
なぜ重要か
MCPデータベースサーバーはstructured-dataアクセスを必要とするLLMエージェントの一般的な統合ポイントです。この広く使用されているコネクタの認証されていないSQL実行プリミティブ — ダイレクト到達またはブラウザをローカルMCPリスナーへのDNSリバインディングにトリックすることで到達可能 — は、攻撃者に完全なデータベース侵害へのパスを与え、上昇されたMySQL権限(例:FILE)では、ホストレベルのコード実行が可能になります。
攻撃経路
MCP_TRANSPORT=sseが設定されている場合、サーバーはsecurity_settingsおよびenable_dns_rebinding_protectionなしでSseServerTransportを構成するため、MCP Python SDKのOrigin/Host検証は適用されません。リモート認証なしの攻撃者(ダイレクト、または悪意のあるWebページからのDNSリバインディングを介して)は、露出されたMCPサーバーにSQLクエリを送信できます。十分なMySQL権限(例:FILE)では、これは任意ファイル読み取り/書き込みおよび潜在的なRCEにエスカレートする可能性があります。
影響を受けるシステム
mysql-mcp-server (PyPI) 0.4.2より前のバージョン
緩和策
mysql-mcp-server 0.4.2以降にアップグレードしてください。これはSSEモードでDNSリバインディング/Origin-Host保護をデフォルトで有効にします。SSE/HTTPで公開されたMCP MySQLサーバーを実行しているオペレーターは、インターネットから直接到達可能ではないこと、およびCVSS 10.0レーティングが与えられているため直ちにパッチが適用されていることを確認する必要があります。