Python Starlette框架曝BadHost高危漏洞,数百万AI Agent面临安全风险

近日,安全研究人员在Python的Starlette框架中发现了一个名为”BadHost”的高危漏洞(CVE-2026-48710),该漏洞影响范围极广,直接威胁到数百万运行中的AI Agent系统。

漏洞概况

Starlette是一个轻量级的Python ASGI框架,每周下载量高达3.25亿次。它是FastAPI的底层路由核心,被大量AI Agent平台和MCP(Model Context Protocol)服务器采用。安全公司Secwest和X41 D-Sec联合发现了这个漏洞。

漏洞的严重程度评级为7分(满分10),但研究人员认为这个评级”严重低估了”实际威胁。该漏洞可以被轻易利用,且对大多数未部署反向代理保护的系统都有效。

漏洞原理

BadHost漏洞的核心在于Starlette对HTTP Host头的处理方式。Starlette在构造请求URL时依赖HTTP Host头,但没有对其进行任何验证。攻击者只需在Host头中注入一个特殊字符,就能绕过基于路径的授权机制。

具体来说,Starlette的路由算法依赖HTTP路径,但request.url.path属性是通过Host头和请求路径组合构造的。当Host头包含恶意内容时,路径匹配会产生偏差,导致认证绕过。

影响范围

这个漏洞影响范围非常广泛:

  • AI Agent平台:所有使用Starlette/FastAPI的AI Agent服务
  • MCP服务器:通过ASGI运行的MCP协议服务器
  • API服务:基于FastAPI构建的各类API服务
  • Web应用:使用Starlette作为路由层的Web应用

X41 D-Sec研究员Markus Vervier的扫描结果显示,目前暴露的数据类型包括:API密钥、用户数据、内部服务配置等敏感信息。

受影响的AI Agent生态

由于MCP协议的广泛采用,该漏洞的影响范围已经扩展到整个AI Agent生态系统。MCP允许AI Agent访问外部工具和数据源,而这些服务大多基于Starlette/FastAPI构建。这意味着:

  • OpenAI、Anthropic等平台的Agent工具调用可能被劫持
  • 企业内部部署的Agent服务面临数据泄露风险
  • 第三方Agent插件和扩展可能被利用作为攻击入口

修复建议

针对这个漏洞,建议采取以下措施:

  1. 立即更新:升级到Starlette最新版本(已修复此漏洞)
  2. 部署反向代理:在Starlette服务前部署Nginx等反向代理,过滤恶意Host头
  3. Host头验证:在应用层添加Host头白名单验证
  4. 安全审计:检查现有AI Agent服务是否暴露了敏感接口
  5. 网络隔离:确保Agent服务不在公网上直接暴露

代码层面的修复

如果暂时无法升级框架,可以在代码层面添加Host头验证:

from starlette.middleware import Middleware
from starlette.middleware.base import BaseHTTPMiddleware

class HostValidationMiddleware(BaseHTTPMiddleware):
    ALLOWED_HOSTS = ["your-domain.com", "localhost"]
    
    async def dispatch(self, request, call_next):
        host = request.headers.get("host", "")
        if host not in self.ALLOWED_HOSTS:
            from starlette.responses import JSONResponse
            return JSONResponse({"error": "Invalid host"}, status_code=400)
        return await call_next(request)

总结

这个漏洞再次提醒我们,AI Agent时代的安全问题不容忽视。随着越来越多的企业部署AI Agent系统,底层框架的安全性直接关系到整个系统的安全。建议所有使用Starlette/FastAPI的站长和开发者立即检查并修复此漏洞。

本文参考来源:Ars Technica – Millions of AI agents imperiled by critical vulnerability in open source package

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容