事件经过
RAGFlow的set_api_key端点接受攻击者提供的base_url值而不进行验证,并向其发起服务器端请求。这使认证用户能够对共享网络后端和云元数据服务进行SSRF,并在响应中返回详细的异常文本,泄露内部服务指纹。
影响分析
RAG平台通常部署在VPC内,与其索引的向量数据库、对象存储和模型端点一起。此SSRF为认证(通常是低权限)用户提供了转向内部网络的入口,并提供了通过元数据获取云凭据的路径。
攻击途径
POST /v1/llm/set_api_key使用未验证的base_url(由api/apps/llm_app.py中的set_api_key()处理)导致服务器向攻击者选择的主机发起请求(CWE-918 SSRF);返回给客户端的错误文本披露了内部服务布局。
受影响系统
RAGFlow 0.27.0之前版本
缓解措施
升级到RAGFlow 0.27.0。