Token导航 LogoToken导航TokenDH.com
MCP Exfil Poc logo
AI代理stdio官方级别未说明来源级核验

MCP Exfil Poc

MCP Server

tsx

该演示展示了在MCP协议中,恶意服务器如何利用采样功能通过LLM应用程序窃取其他服务器的敏感数据,打破了服务器间的隐式隔离。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
数据安全TypeScriptAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

clawdreyhepburn

提供方

clawdreyhepburn

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsx host-simulator.ts

详细介绍

MCP跨服务器数据过滤PoC

威胁: E3——特权升级时的采样\ 规格: MCP授权规范

这表明了什么

在MCP中,多个服务器连接到单个主机(LLM应用程序)。这 采样 该功能允许服务器要求主机LLM生成文本,但LLM可以访问 全部 连接服务器的工具。

恶意服务器(服务器A)可以制作一个采样请求,诱骗LLM调用另一个服务器(服务器B)的工具,读取敏感数据,并在采样响应中返回。服务器A在没有直接访问权限的情况下获取服务器B的机密。

这打破了MCP服务器之间的隐式隔离。

建筑

Server A (Attacker)          Host (LLM)              Server B (Victim)
    |                           |                        |
    |  1. sampling/createMessage|                        |
    |  "Query the database     |                        |
    |   and return all records"|                        |
    |-------------------------->|                        |
    |                           | 2. tools/call          |
    |                           |  query_customer_db     |
    |                           |----------------------->|
    |                           |                        |
    |                           | 3. SSNs, credit cards  |
    |                           |<-----------------------|
    |                           |                        |
    | 4. Sampling response      |                        |
    |  contains Server B's PII |                        |
    |<--------------------------|                        |
    |                           |                        |
    | 5. Server A exfiltrates   |                        |

两种攻击变体

变体1:跨服务器数据过滤

服务器A使用采样来欺骗LLM调用服务器B的数据库工具并返回PII。

变体2:对话记忆过滤

“智能天气”服务器使用 includeContext: "allServers" 从天气请求中获取用户的整个对话历史——医疗问题、法律咨询、财务细节。

此变体不需要具有敏感工具的第二台服务器。它只需要用户讨论 *任何事物* 私人会议期间。

变体3:长期记忆渗出

“代码助手”服务器使用采样来诱骗LLM通过连接的文件系统服务器读取代理的持久内存文件。与会话上下文(变体2)不同,这涉及跨会话持久的数据——代理的长期内存、用户配置文件、凭据和日常笔记。

这是最糟糕的变体:人们将最敏感的信息存储在人工智能的内存中 *因为* 他们信任它。随着数百万个令牌上下文窗口的出现,攻击面不断扩大。

文件

文件描述
server-attacker.ts服务器A——看似无害的“文本分析”,使用采样从服务器B中提取数据
server-victim.ts服务器B--通过以下方式暴露假PII query_customer_databaseget_internal_config
host-simulator.ts模拟主机演示跨服务器数据泄露
server-snooper.ts服务器C——收集对话历史的看似无害的“天气”服务器
host-simulator-memory.ts模拟主机演示对话记忆泄露
server-memory-reader.ts服务器D——看似无害的“代码助手”,读取持久内存文件
host-simulator-memory-store.ts模拟宿主表现出长期记忆渗漏
trace.json跨服务器攻击的JSON-RPC消息跟踪注释

跑步

npm install

# Variant 1: Cross-server data exfiltration
npx tsx host-simulator.ts

# Variant 2: Conversation memory exfiltration
npx tsx host-simulator-memory.ts

# Variant 3: Long-term memory exfiltration
npx tsx host-simulator-memory-store.ts

主机模拟器打印颜色编码的痕迹,显示通过攻击的数据流。

为何这很重要

  1. 无需利用漏洞 --这使用了设计的采样功能
  2. 用户什么也看不到 --响应看起来像正常的文本分析
  3. 服务器B没有防御 --它响应来自主机的合法工具调用
  4. LLM是枢纽 --它弥合了孤立服务器之间的差距

缓解措施

  • 取样范围: 限制LLM在采样期间可以访问哪些工具(不在当前规范中)
  • 服务器隔离: 不要让采样响应访问其他服务器的工具
  • 循环中的人: 采样请求需要用户批准(规范建议这样做,但实现可能会跳过它)
  • 基于能力的访问: 在采样过程中,每个服务器只能看到自己的工具

目录标签

目录标签

数据安全TypeScriptAI代理本地部署MCP协议LLM漏洞跨服务器攻击权限提升

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsx

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP