事件经过
Chainlit的MCP端点验证允许攻击者通过嵌入‘..;’段绕过路径范围的allowed_urls条目,实现对操作员从未授权的路径的SSRF攻击。于2026年11月2日发布,附有GitHub安全公告和VulnCheck公告;这是该框架原生Model Context Protocol表面中的一个中危(CVSS 3.1 5.4 / CVSS 4.0 6.3)服务器端请求伪造漏洞。
影响分析
Chainlit是一个广泛使用的开源框架,用于构建LLM/聊天机器人应用,并暴露了一个供代理和用户调用的MCP端点。绕过路径范围的MCP允许列表将框架自身的MCP服务器转变为任意请求原语,使攻击者能够访问操作员认为已切断的内部元数据、管理员路径或相邻服务。
攻击途径
未认证攻击者向/mcp端点提交包含‘..;’路径段的MCP URL。Chainlit的validate_mcp_url未拒绝分号字符,因此URL的路径范围前缀通过allowed_urls授权后,可在剥离分号路径参数的源上解析到操作员授权范围之外的路径,从而产生服务器端请求伪造。
受影响系统
Chainlit 2.12.0(根据GHSA-hvfh-5mj3-5f3j的更广范围);backend/chainlit/mcp.py中的validate_mcp_url
缓解措施
将Chainlit升级至GHSA-hvfh-5mj3-5f3j / VulnCheck公告中引用的修补版本;在validate_mcp_url中拒绝分号字符,并将MCP URL限制在允许的路径范围内;确保后端源实际剥离分号路径参数。