一个随机字符串就绕过了认证:CISA 首次将 MCP 漏洞列入 KEV,AI Agent 基础设施进入国家级监管
2026 年 9 月 2 日,美国网络安全和基础设施安全局(CISA)做了一件从未做过的事——在「已知被利用漏洞」(KEV)目录中,加入了一个专门针对 AI Agent 基础设施的漏洞。
这个漏洞编号 CVE-2026-59822,影响的是 LiteLLM 的 MCP Streamable HTTP 端点。CVSS 评分 8.8,听起来不算最致命的那一档。但它的实际影响远超分数所能表达。
因为这是 Model Context Protocol(MCP)诞生以来,第一个进入政府强制修补清单的安全漏洞。它标志着 AI Agent 基础设施正式进入了国家级网络安全监管的视野。
漏洞到底怎么回事:认证形同虚设
用一句话概括:任何人随便编一个 token,就能获得完全合法的授权会话。
正常流程是这样的:
- 客户端发送请求,携带 bearer token
- 服务端验证 token 是否匹配有效凭据
- 匹配 → 返回授权会话;不匹配 → 拒绝
CVE-2026-59822 打破的是第 2 步。LiteLLM 的 MCP 端点接受任意 bearer token——不管你传什么字符串,它都当作合法身份证明,然后返回一个行为完全正常的授权会话。
攻击者不需要知道真正的凭据。不需要窃取 API 密钥。不需要破解密码。只需要一个任意字符串。
这就像你家门锁看起来是锁着的,但任何人只要在门上随便敲三下,门就自动开了,而且来人获得了和你一样的户主权限。
LiteLLM 为什么重要
LiteLLM 是一个开源的 AI 模型代理——在应用程序和各种大语言模型之间做路由。
不管后端是 OpenAI、Anthropic、Google 还是其他几十个提供商,前端只需要对接 LiteLLM 一个接口。这种设计让它成为了 AI Agent 部署中最广泛使用的基础设施之一。
而 MCP 端点是 LiteLLM 的关键功能,允许 AI Agent 通过标准协议调用外部工具:查询数据库、执行工作流、调用内部 API。当这个端点被攻破,攻击者获得的不只是一个会话——是整个 Agent 工具链的访问权限。
MCP 2026-07-28:无状态化转型的安全代价
要理解这个漏洞的背景,需要了解 MCP 协议本身的变化。
2026 年 7 月 28 日,MCP 发布了自诞生以来最大的一次修订——让协议变成无状态的。
之前 MCP 需要维护会话状态,服务器要记住会话上下文。这种设计在水平扩展时很痛苦:每个实例都要共享会话状态,或者用粘性路由绑定客户端。
无状态化后,每个请求都携带自己的协议版本和客户端上下文,服务器不需要维护任何会话状态。任何一个服务器实例都能处理任何一个请求。Lambda、Kubernetes、任何负载均衡器都能直接支持。
从架构角度看,这是正确的选择。但它也带来了新的安全考量:
- 有状态协议:认证只需在会话建立时做一次,后续通过会话 ID 验证
- 无状态协议:每个请求都必须独立验证,认证逻辑在每次请求时执行
这意味着认证逻辑的缺陷会在每次请求时被暴露。一个在有状态协议中可能只影响单个会话的缺陷,在无状态协议中可能影响所有请求。CVE-2026-59822 正是在这种背景下出现的。
Knowns 批量 MCP 漏洞披露
就在 CISA 行动之后几天,安全研究团队 Knowns 也集中披露了一批 MCP/Agent 系统的 CVE:
- CVE-2026-86439(CVSS 8.7 High):MCP Tool 参数路径穿越,通过
../越出 Project 目录,可读取/创建/覆盖/删除任意文件,影响 <0.30.0 版本 - 更多针对 MCP 工具调用链的漏洞正在被分析
这些漏洞的共同特点:**不是协议设计的问题,而是实现层面的问题。**MCP 规范本身在认证方面给了很大灵活性,但实现这些认证的责任完全落在了每个服务器和代理的开发者身上。
CISA KEV 目录的分量
KEV 目录不是普通的安全建议。它的含义是:
- 这些漏洞不是理论上的——有人正在实际利用
- 联邦民用机构必须在截止日期前修补,否则要解释为什么不修
- 对于非联邦机构,这也应该被视为高优先级
2026 年 9 月初这批 KEV 条目中,涉及 SonicWall、JFrog、PaperCut 等至少 10 个厂商。但 CVE-2026-59822 是唯一一个针对 AI Agent 基础设施的。
CrowdStrike 的分析指出,这种模式表明攻击者不再集中于单一基础设施类别——AI Agent 系统已经成为和传统基础设施同等重要的攻击目标。
这反映了什么趋势
从「应该关注」到「必须处理」
OWASP 在 2026 年初发布了智能体安全十大风险——那是行业指南,帮助开发者理解挑战。CISA 的 KEV 条目则完全不同——不是建议,是命令;不是理论分析,是对已知被利用漏洞的强制响应。
MCP 从 2024 年底开源到 2026 年 9 月就出现了第一个 KEV 条目,不到两年。相比之下,Web 应用安全领域花了更长时间才建立起类似的监管框架。
MCP 协议的采用爆炸
NPM 下载量超过 9700 万,活跃公共服务器超过 10000 个。企业争相给大语言模型赋予行动能力——不只是回答问题,而是调用内部 API、执行代码、查询实时数据。LiteLLM 成为了这个技术栈中部署最广泛的连接层。
当一个协议被广泛采用时,它就成为了高价值攻击目标。安全审查远远跟不上部署速度。
开发者和企业应该做什么
立即行动
- 检查是否使用受影响的 LiteLLM 版本,按补丁更新
- 审计所有 MCP 端点的认证实现
- 不依赖单一认证层——结合 IP 白名单、请求签名、速率限制
架构级防护
MCP 安全防护不是单点,而是纵深:
┌─────────────────────────────────────┐
│ 第一层:认证(不是只看 token) │
│ → Bearer Token + IP 白名单 + 签名 │
├─────────────────────────────────────┤
│ 第二层:授权(最小权限原则) │
│ → 不是所有 Agent 都能调所有工具 │
├─────────────────────────────────────┤
│ 第三层:监控(会话级行为分析) │
│ → 工具调用频率、多样性、异常模式检测 │
├─────────────────────────────────────┤
│ 第四层:审计(完整请求日志) │
│ → 来源 IP、认证信息、调用工具全记录 │
└─────────────────────────────────────┘
MCP 会话监控示例
from collections import defaultdict
import logging
logger = logging.getLogger("mcp_security")
class MCPSessionMonitor:
"""检测异常 MCP 工具调用模式"""
def __init__(self, baseline_tools=10, max_calls_per_minute=60):
self.baseline_tools = baseline_tools
self.max_calls_per_minute = max_calls_per_minute
self.session_calls = defaultdict(list)
def check_session(self, session_id, tool_name, timestamp):
calls = self.session_calls[session_id]
calls.append((tool_name, timestamp))
# 高频调用检测
recent = [t for _, t in calls if timestamp - t < 60]
if len(recent) > self.max_calls_per_minute:
logger.warning(f"高频调用告警: {session_id} 1分钟内{len(recent)}次")
return False
# 工具滥用检测
unique_tools = len(set(t for t, _ in calls))
if unique_tools > self.baseline_tools * 2:
logger.warning(f"工具滥用告警: {session_id} 调用了{unique_tools}种工具")
return False
return True
更深层的警示
CVE-2026-59822 的意义远超技术层面:
- AI Agent 基础设施已被视为关键基础设施——受到和电信、能源、金融系统同样的安全监管标准
- MCP 已成为高价值攻击目标——专门的 MCP 安全工具会成为一个独立的产品类别
- 企业采购流程将要求供应商披露 MCP 认证架构——就像 SOC 2 问卷在云安全事件后的演变
- 从行业最佳实践到强制合规的转变正在加速——这不是会不会发生的问题,是多快发生
那些还在把 AI Agent 安全当作「以后再说」的企业,现在需要重新评估优先级。攻击者已经在行动,监管机构也已经在行动。等待不是一个可行的策略。
注:本文基于 CVE-2026-59822 公开披露信息及 CISA KEV 目录公告整理,技术细节参考 BerriAI 安全公告及 Knowns 漏洞披露。
更多推荐


所有评论(0)