事件经过
Langchain-Chatchat 至 0.3.1.3 暴露了一个 POST /tools/call API 端点,无需任何认证即可按名称调用任何已注册工具,使始终注册的 shell 工具可被调用。远程攻击者发送单个请求指定 shell 工具,即可作为服务器用户执行任意操作系统命令——在随附的 Docker 镜像中为 root。
影响分析
这使一个公共聊天/RAG 后端变成预认证 root shell。由于 ChatChat 是一个广泛部署的中国 RAG/聊天机器人框架,常暴露于互联网,攻击者可转向主机,读取服务持有的 LLM/数据库凭证,并篡改知识库或模型流水线。
攻击途径
未认证的 POST /tools/call 指定始终注册的 shell 工具
受影响系统
Langchain-Chatchat <= 0.3.1.3(pypi langchain-chatchat)
缓解措施
升级到修复版本,并在 /tools/call 上添加认证/白名单;限制服务端注册的工具