文章总结: mysql-mcp-server存在CVE-2026-59971严重漏洞,CVSS10.0,因缺少认证与origin校验,未认证攻击者可执行任意SQL,若MySQL账户有file权限可进一步实现RCE。受影响版本低于0.4.2,建议立即升级至0.4.2,避免将SSE服务暴露公网,并检查数据库账户权限。 综合评分: 88 文章分类: 漏洞分析,应急响应,漏洞预警,web安全
紧急安全预警|MySQL MCP Server曝CVSS 10.0严重漏洞,未认证攻击者可执行任意SQL并实现RCE
tuto tuto
杂杂咱谈
2026年9月13日 10:55 福建
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一、漏洞概述
GitHub Security Advisory披露开源项目mysql-mcp-server存在一处严重安全漏洞CVE-2026-59971。漏洞位于项目的SSE/HTTP Transport实现中,由于缺少Origin/Host校验、身份认证以及TrustedHost/CORS等安全机制,攻击者可能在无需身份认证的情况下调用execute_sql执行任意SQL。
当后端MySQL账户拥有FILE权限时,攻击者还可能进一步读取或写入服务器文件,并在特定条件下实现远程代码执行。GitHub将该漏洞评定为Critical,CVSS 10.0。
二、漏洞基本信息
| 项目 | 内容 |
| — | — |
| 漏洞编号 | CVE-2026-59971 |
| GHSA | GHSA-rqfv-2mw9-78g2 |
| 项目 | mysql-mcp-server |
| Ecosystem | PyPI |
| 漏洞类型 | 缺失认证、Origin校验错误 |
| CWE | CWE-306、CWE-346 |
| CVSS | 10.0 Critical |
| CVSS向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| 受影响版本 | < 0.4.2 |
| 修复版本 | 0.4.2 |
| 触发条件 | MCP_TRANSPORT=sse |
| 默认 stdio 模式 | 不受影响 |
GitHub Advisory页面显示,该漏洞于2026年6月21日由项目维护方发布,随后于2026年9月11日进入GitHub Advisory Database并完成审核。
三、漏洞技术原理
该漏洞的核心问题出现在mysql_mcp_server的SSE Transport实现。在SSE/HTTP模式下,程序创建SseServerTransport时没有提供相应的security_settings,导致MCP Python SDK默认关闭DNS Rebinding Protection。
同时,应用还存在以下安全缺陷:
- 未启用 Origin/Host 校验;
- 未配置 CORS Middleware;
- 未配置 TrustedHost Middleware;
- /、/sse、/messages/路由均无需认证;
- 服务默认绑定
0.0.0.0; - SQL 执行函数直接使用攻击者可控的查询内容。
最终形成:
网络请求 → 未认证SSE接口 →execute_sql→ 攻击者控制SQL语句 → MySQL数据库
四、两种主要攻击场景
场景一:服务直接暴露在网络
如果MySQL MCP Server使用SSE模式并直接暴露到网络,攻击者无需凭据即可调用SQL执行功能。
攻击链可以概括为:
远程攻击者 ↓访问SSE/HTTP接口 ↓无需认证 ↓调用 execute_sql ↓执行任意SQL ↓读取/修改数据库
这意味着攻击者可能直接获取数据库中的大量敏感数据,并修改或删除数据。
场景二:DNS Rebinding攻击
如果MCP Server仅绑定本地地址,攻击者仍可能利用DNS Rebinding。
攻击者首先诱导受害者访问恶意网页,然后通过DNS Rebinding将攻击域名解析到:
127.0.0.1
随后利用受害者浏览器作为代理访问本地MCP Server,并以同源请求方式调用execute_sql。
攻击链:
恶意网页 ↓DNS Rebinding ↓127.0.0.1 ↓本地 MySQL MCP Server ↓SSE/messages ↓execute_sql ↓任意SQL执行
漏洞之所以能够形成这条攻击链与服务本身缺少Origin/Host验证和DNS Rebinding Protection有直接关系。
五、从SQL执行到RCE
该漏洞最值得关注的地方并不仅仅是数据库访问。
如果MCP Server连接MySQL所使用的账户拥有FILE权限,攻击者可以进一步利用数据库文件操作能力。
攻击链可概括为:
未认证访问 ↓SSE接口 ↓execute_sql ↓任意SQL执行 ↓MySQL FILE权限 ↓任意文件读取/写入 ↓进一步实现代码执行
GitHub Advisory明确指出,在拥有FILE权限的情况下,可以利用MySQL的文件读取/写入能力,例如LOAD_FILE、INTO OUTFILE,进而在特定环境下实现RCE。
因此,更准确的描述应该是:
CVE-2026-59971本身首先导致未认证任意SQL执行;是否进一步达到RCE,取决于后端MySQL账户权限以及目标服务器环境。
六、漏洞影响
成功利用后,攻击者可能获得:
- 未认证任意SQL执行
- 数据库敏感信息窃取
- 数据库数据修改、删除
- 大规模数据外泄
- MySQL
FILE权限滥用 - 任意文件读取
- 任意文件写入
- 特定环境下进一步实现RCE
GitHub Advisory还指出,研究人员通过互联网扫描发现了25个公开可访问的该项目SSE实例,说明将此类MCP服务直接暴露到互联网存在现实攻击面。
七、受影响版本
受影响
mysql-mcp-server < 0.4.2
GitHub Advisory 列出的历史版本包括:
- 0.1.0
- 0.1.2
- 0.2.0
- 0.2.1
- 0.2.2
- 0.3.0
- 0.3.1
- 0.4.0
- 0.4.1
已修复
0.4.2
需要特别注意的是,该漏洞主要影响:
MCP_TRANSPORT=sse
官方说明默认stdio Transport不受该漏洞影响。
八、修复与缓解建议
1. 立即升级
建议将mysql-mcp-server升级至v0.4.2或更高版本
v0.4.2版本已启用MCP SDK的DNS Rebinding Protection。
2. 不要将SSE服务直接暴露到公网
官方修复版本建议绑定:127.0.0.1而不是:0.0.0.0
3. 检查MySQL账户权限
重点检查MCP Server使用的数据库账户是否拥有FILE等高风险权限。
如果业务不需要,应立即删除不必要的数据库权限。
4. 排查异常SQL操作
- 大规模
SELECT - 异常数据导出
- 数据批量修改/删除
LOAD_FILEINTO OUTFILE- 异常数据库账户行为
- MCP Server异常HTTP/SSE访问
九、漏洞利用链总结
可以将此次漏洞压缩成一条比较直观的攻击链:
未认证SSE访问 → Origin/Host校验绕过 →
execute_sql→ 任意SQL执行 → 数据库读写 → MySQL FILE权限 → 任意文件读写 → 潜在RCE
其中DNS Rebinding是攻击者在服务仅本地暴露情况下的一条重要利用路径。
十、总结
CVE-2026-59971是一个针对MCP Server的严重安全漏洞。其危险性在于,问题并非单纯的SQL注入,而是MCP SSE服务缺少认证+Origin/Host校验+DNS Rebinding防护缺失+默认公网监听多个问题叠加,最终让攻击者能够在特定部署条件下直接调用数据库执行功能。
对于使用MySQL MCP Server + SSE Transport的环境,应优先确认当前版本、监听地址以及MySQL账户权限。0.4.1及以前版本建议立即升级至0.4.2或更高版本。
Simple #CVE-2026-59971 #MySQL MCP Server #RCE
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:杂杂咱谈 tuto tuto《紧急安全预警|MySQL MCP Server曝CVSS 10.0严重漏洞,未认证攻击者可执行任意SQL并实现RCE》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论