argsenv最初,BerriAI将此披露为一个认证后的远程代码执行漏洞——攻击者需要拥有一个有效的API密钥才能访问这些端点,且当时没有任何基于角色的权限检查来限制谁可以调用它们。这意味着,即使是拥有任何有效代理API密钥的低权限内部用户,也能在宿主机上执行任意命令 。然而,故事并没有就此结束。
第二个漏洞是CVE-2026-48710,被研究人员昵称为“BadHost”。这是一个存在于Starlette框架中的Host请求头验证漏洞。Starlette是一种轻量级的ASGI框架,是FastAPI、vLLM等数千个Python Web应用的基础——当然也包括LiteLLM 。所有从0.8.3到1.0.0版本的Starlette均受影响
。
漏洞的根源在于解析不一致:Starlette用于路由的ASGI层,根据请求的原始HTTP路径来决定由哪个端点处理,但它重建用于应用逻辑的request.url时,却是将原始Host请求头的值与请求路径直接拼接而成,且未进行适当验证
。
通过在Host请求头中注入诸如?或#这类URI权限到路径的分隔符,攻击者可以让应用中间件看到的request.url.path,与请求实际被路由到的路径完全不同 。在中间件看来,请求指向了一个无害的路径,比如
/,而在幕后,ASGI路由器却将请求转发给了真正的目标端点。于是,任何信任request.url.path的、基于路径的身份验证中间件,都可以被轻易绕过 。
LiteLLM的身份验证装饰器会检查request.url.path,来判断某个请求是否需要有效的API密钥。而BadHost绕过漏洞能让攻击者操纵这个URL,使得身份验证中间件以为该请求指向一个无需认证的路径,而与此同时,ASGI路由器却将请求分发到了两个存在命令注入漏洞的MCP测试端点之一 。
这样一来,攻击者就移除了横亘在互联网和任意命令执行之间的唯一一道门禁。一个既无凭证、也未事先获得网络访问权的攻击者,只需发送一个精心构造的HTTP请求,就能完全绕过身份验证,在LiteLLM代理宿主机上运行操作系统命令 。Horizon3.ai已确认整个攻击链有效,并因其实现了无需认证的远程代码执行,而给出了10.0分的合并CVSS评分——最高严重级别
。
成功利用此漏洞后,攻击者将以LiteLLM代理进程的权限执行命令。以此为跳板,后续威胁将迅速扩大:
CISA于2026年6月8日将CVE-2026-42271加入KEV目录,确认该漏洞不再是理论上的风险——攻击者此刻正在积极地武器化它 。根据《第22-01号约束性操作指令》(BOD 22-01),美国所有联邦民事行政部门必须在规定的修复时限内,修补所有KEV目录中列出的漏洞。CISA也强烈建议所有公私组织将KEV新增条目视为紧急修补事项,列为最高优先级
。
要修复这个漏洞利用链,需要从两方面着手,并采取多项纵深防御措施来应对凭证泄露风险:
Host请求头,并忽略包含非法字符的请求头,从而阻止了用于绕过的路径混淆技俩 POST /mcp-rest/test/connectionPOST /mcp-rest/test/tools/listHost请求头的请求 高达10.0的合并CVSS评分、已证实的在野利用,以及CISA的KEV指定,意味着所有运行LiteLLM或Starlette驱动服务的组织,都应将此事件视为一次紧急的修补与凭证轮换行动。漏洞已被积极利用,凭证数据随时可能被窃取,这一窗口期已经敞开。
Comments
0 comments