首页 网络安全 正文
  • 本文约2091字,阅读需10分钟
  • 15
  • 0

Anthropic MCP TypeScript SDK漏洞CVE-2026-0621

摘要

栋科技漏洞库关注到 Anthropic MCP TypeScript SDK 正则表达式拒绝服务(ReDoS)漏洞,追踪为CVE-2026-0621,CVSS 4.0评分8.7。

MCP TypeScript SDK 是 Meta(原 Facebook)为 Machine Learning Compiler Project ((MCP)提供的 TypeScript 语言软件开发工具包。

一、基本情况

Anthropic MCP TypeScript SDK 是 TS/JS 开发者对接 MCP 协议官方工具,核心是实现 Claude 与外部工具的交互,类型安全、开箱即用。

AdonisJS路径遍历漏洞CVE-2026-21440

Anthropic MCP TypeScript SDK 适用于前端 /Node.js项目中集成具备工具调用能力的 Claude 功能,比如智能助手、自动化工作流等场景。

栋科技漏洞库关注到 Anthropic MCP TypeScript SDK 正则表达式拒绝服务(ReDoS)漏洞,追踪为CVE-2026-0621,CVSS 4.0评分8.7。

二、漏洞分析

CVE-2026-0621漏洞是存在于 Anthropic  MCP TypeScript SDK 版本至并包括1.25.1版本中的一个正则表达式的拒绝服务(ReDoS)漏洞。

该漏洞是Anthropic 的 MCP TypeScript SDK UriTemplate 类在处理RFC 6570爆炸数组模式时存在的正则表达式拒绝服务(ReDoS)漏洞。

在URI匹配过程中使用的动态生成的正则表达式包含嵌套的量词,可以在特殊构建的输入上触发灾难性的回溯,导致过度的CPU消耗。

攻击者可以通过提供恶意URI来利用此漏洞,导致Node.js进程无响应,从而导致拒绝服务。

1、由于正则表达式引擎中的灾难性回溯,MCP TypeScript SDK中的UriTemplate类在处理RFC 6570 URI模板标准中的数组展开模式,

比如 ({/id*}, {?tags*}, etc.) ,这时候容易受到ReDoS攻击。

2、根本原因分析

1. 易受攻击的代码位置

文件:typescript-sdk/src/shared/uriTemplate.ts

函数:partToRegExp()(第223-271行)

方法:match()(第273-315行)

2. 易受攻击的正则表达式模式

// Line 253: Regular expression generated for exploded patterns
pattern = part.exploded ? "([^/]+(?:,[^/]+)*)" : "([^/,]+)";
//                      ↑ This pattern is the source of ReDoS vulnerability

3. 回溯机制

正则表达式分析: ([^/]+(?:,[^/]+)*)

[^/]+:一个或多个字符不符合 /

(?:,[^/]+)*:零个或多个字符,后跟一个或多个 non-/ 字符

问题:嵌套量词导致灾难性回溯

回溯过程:

Input: /users/user1,user2,user3,user4,user5FAIL/
1. [^/]+ matches "user1,user2,user3,user4,user5FAIL"
2. Entire pattern fails at the final "/" (due to $)
3. Backtrack: [^/]+ matches only "user1,user2,user3,user4,user5"
4. (?:,[^/]+)* tries to match "FAIL/" → fails (contains "/")
5. Further backtrack: [^/]+ matches only "user1,user2,user3,user4"
6. (?:,[^/]+)* tries to match ",user5FAIL/" → fails
7. This process continues for all possible combinations → exponential time complexity!

4. 攻击向量

发生在MCP服务器的ReadResourceRequestSchema处理程序中:

// typescript-sdk/src/server/mcp.ts:427-429
const variables = template.resourceTemplate.uriTemplate.match(
  uri.toString(),  // ← URI controlled by client
);

攻击场景:

服务器使用分解模式注册资源模板

攻击者通过资源/读取请求发送恶意URI

当服务器调用uriTemplate.match()时,会发生ReDoS

4、影响分析

1. 直接影响

服务器DoS:100%的CPU使用率导致服务器崩溃

服务不可用:其他客户端也受到影响

可用性降低:服务中断

2. 攻击先决条件

服务器端:使用分解模式({/id*}, {?tags*}等)

客户端侧:MCP客户端访问权限

网络:能够通过MCP协议发送请求

3. 影响范围

MCP服务器:所有采用分解式布局的服务器

客户端:恶意客户端或受害客户端

三、POC概念验证

1. 基本ReDoS测试

管理员已设置登录后刷新可查看

2. 真实MCP服务器攻击场景

管理员已设置登录后刷新可查看

3. 性能测试结果

Normal Input    < 1ms    Normal

Malicious Input (10 repeats)    58 seconds    ReDoS

Malicious Input (50 repeats)    Infinite loop    Server crash

四、影响范围

Anthropic MCP TypeScript SDK <= 1.25.1

五、修复建议

Anthropic MCP TypeScript SDK > 1.25.1

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接