IPBUF安全漏洞报告
English
CVE-2026-0621 CVSS 7.5 高危

CVE-2026-0621 | MCP TypeScript SDK UriTemplate ReDoS拒绝服务漏洞

披露日期: 2026-01-05

漏洞信息

漏洞编号
CVE-2026-0621
漏洞类型
ReDoS(正则表达式拒绝服务)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Anthropic MCP TypeScript SDK

相关标签

ReDoS正则表达式拒绝服务MCP TypeScript SDKAnthropicNode.js拒绝服务CVE-2026-0621RFC 6570UriTemplate

漏洞概述

CVE-2026-0621是Anthropic公司MCP TypeScript SDK中的一个高危拒绝服务漏洞。该SDK在处理RFC 6570规范的URI模板时,使用动态生成的正则表达式进行URI匹配。然而,这些正则表达式存在嵌套量词问题,当处理特制的爆炸数组模式(exploded array patterns)时,会触发灾难性回溯(catastrophic backtracking)现象。攻击者可以通过构造恶意的URI路径,利用此漏洞导致Node.js进程的CPU资源被耗尽,从而造成服务不可用。由于该SDK被广泛应用于AI模型上下文协议的实现中,此漏洞可能影响多个依赖该SDK的应用程序和服务。攻击者无需任何认证权限即可发起攻击,且可以通过网络远程利用,危害极大。

技术细节

该漏洞位于MCP TypeScript SDK的UriTemplate类中,具体问题出在处理RFC 6570定义的exploded array patterns时使用的正则表达式生成逻辑。正则表达式中包含嵌套量词(如(a+)+或(a*)*),当输入字符串包含大量重复字符时,正则引擎会尝试所有可能的匹配组合,导致指数级的时间复杂度增长。攻击者只需提供一个精心构造的URI(如包含大量重复字符的路径参数),即可触发ReDoS条件。在Node.js环境下,这会导致单线程事件循环被阻塞,使得整个服务进程变得无响应。由于MCP SDK通常作为服务端组件运行,此漏洞可被用于对AI助手服务进行拒绝服务攻击。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标应用是否使用存在漏洞的MCP TypeScript SDK版本(<=1.25.1),并确定暴露的URI端点
STEP 2
步骤2: 构造恶意输入
攻击者构造包含大量重复字符的RFC 6570 exploded array pattern参数,用于触发正则表达式的灾难性回溯
STEP 3
步骤3: 发送攻击请求
通过HTTP请求将恶意URI发送给目标服务器,无需任何认证即可触发漏洞
STEP 4
步骤4: 触发ReDoS
UriTemplate类的正则表达式匹配逻辑在处理恶意输入时进入指数级回溯,CPU使用率急剧上升
STEP 5
步骤5: 服务不可用
Node.js事件循环被阻塞,导致服务进程无响应,实现拒绝服务攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2026-0621 PoC - MCP TypeScript SDK UriTemplate ReDoS // Target: Anthropic MCP TypeScript SDK <= 1.25.1 // Malicious URI that triggers catastrophic backtracking const maliciousUri = '/v1/compile?' + 'param=' + 'a'.repeat(30); // Example exploit using the vulnerable UriTemplate class const { UriTemplate } = require('@modelcontextprotocol/typescript-sdk'); // Initialize the UriTemplate with exploded array pattern const template = new UriTemplate('/v1/compile{?param*}'); console.log('Starting ReDoS test with malicious URI...'); const startTime = Date.now(); try { // This will trigger catastrophic backtracking const result = template.match(maliciousUri); console.log('Match completed in', Date.now() - startTime, 'ms'); } catch (e) { console.log('ReDoS triggered - Process became unresponsive'); } // Alternative: Send HTTP request to trigger the vulnerability // curl 'http://target:3000/v1/compile?param=' + 'a'*1000

影响范围

MCP TypeScript SDK <= 1.25.1

防御指南

临时缓解措施
如果无法立即升级,可通过以下措施临时缓解:在MCP SDK前添加Nginx或API网关,对URI查询参数长度进行限制(如限制单参数不超过100字符);部署Web应用防火墙规则,检测并拦截包含大量重复字符的请求;实施请求超时机制,防止单个请求占用过多资源;启用负载均衡器的健康检查,及时发现并隔离无响应节点。

参考链接

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