IPBUF安全漏洞报告
English
CVE-2026-44429 CVSS 5.4 中危

CVE-2026-44429 MCP Registry 存储型XSS漏洞

披露日期: 2026-05-14

漏洞信息

漏洞编号
CVE-2026-44429
漏洞类型
存储型跨站脚本攻击
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
MCP Registry

相关标签

XSS存储型XSSMCP RegistryCSP BypassHTML Injection

漏洞概述

MCP Registry在1.7.7之前的版本中存在严重的存储型XSS漏洞。攻击者利用发布令牌,通过构造包含引号的恶意URL并提交至`server.websiteUrl`字段,绕过服务端验证。由于客户端渲染时未对属性中的引号进行正确转义,导致恶意脚本被注入到主页的`href`属性中。当受害者访问注册表首页时,恶意代码将在其浏览器中执行,窃取敏感信息。

技术细节

该漏洞源于服务端验证逻辑与客户端HTML渲染机制的不匹配。服务端的`validateWebsiteURL`函数仅验证URL是否为绝对路径及是否使用HTTPS协议,但未对双引号字符进行过滤。在客户端,应用使用自定义的`escapeHtml`辅助函数通过`textContent`赋值再读取`innerHTML`的方式来转义内容。根据HTML序列化算法,该过程仅对文本节点中的`&`、`<`、`>`和`U+00A0`进行编码,而不会编码双引号。因此,攻击者可以在`websiteUrl`字段中注入双引号,从而跳出`href`属性上下文,并追加任意`on*`事件处理器(如`onmouseover`)。尽管应用配置了内容安全策略(CSP),但由于包含了`'unsafe-inline'`指令,注入的恶意事件处理器仍可在受害者浏览器中成功执行。

攻击链分析

STEP 1
获取令牌
攻击者通过GitHub账户或利用启用的匿名认证获取发布令牌。
STEP 2
构造Payload
攻击者构造恶意的JSON数据,在websiteUrl字段中插入双引号以闭合href属性,并追加恶意JavaScript事件处理器。
STEP 3
提交数据
攻击者使用获取的令牌,将包含恶意Payload的服务器信息发布到MCP Registry。
STEP 4
存储数据
服务端接收并存储该恶意数据,由于验证缺陷未拦截引号字符。
STEP 5
触发漏洞
受害者访问MCP Registry主页,浏览器渲染包含恶意代码的HTML页面。
STEP 6
执行代码
受害者与页面元素交互(如鼠标悬停),触发注入的脚本,导致XSS攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
{ // Malicious payload for server.json "name": "Malicious Server", "description": "Exploit PoC", // Injecting double quote to break out of href attribute and adding an event handler "websiteUrl": "https://attacker.com\" onmouseover=alert(document.cookie)//" } // Usage: // 1. Obtain a publish token (e.g., via POST /v0/auth/github-at). // 2. POST the above JSON to the publish endpoint. // 3. When a user visits the homepage and hovers over the link, the alert triggers.

影响范围

MCP Registry < 1.7.7

防御指南

临时缓解措施
建议立即升级至1.7.7版本以修复此漏洞。若无法立即升级,应暂时禁用匿名发布功能,并严格审查已发布的服务器列表,移除包含可疑URL的条目。同时,建议配置更严格的CSP策略以限制内联脚本的执行。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表