CVE-2025-68700RAGFlow是一款开源的RAG(检索增强生成)引擎。CVE-2025-68700是高危漏洞,CVSS评分8.8。漏洞源于RAGFlow 0.23.0之前版本中的Canvas CodeExec组件存在严重的安全缺陷。低权限认证用户(普通登录账户)可通过前端Canvas CodeExec组件在服务器宿主进程上执行任意系统命令,完全绕过沙箱隔离机制。攻击者利用untrusted数据(stdout)通过eval()函数进行解析,且没有任何过滤或沙箱保护。设计初衷是“自动将字符串结果转换为Python对象”,但实际上执行了攻击者控制的代码。此外,多个端点缺乏访问控制或包含反向权限逻辑,大大扩展了攻击面并使链式利用成为可能。攻击者可在无需特殊权限的情况下,通过Web界面直接获取服务器最高权限,窃取敏感数据、植入后门或横向移动。
漏洞核心问题在于Canvas CodeExec组件使用Python的eval()函数直接解析未经过滤的用户输入。在RAGFlow的代码执行流程中,当用户在Canvas中执行代码时,stdout输出被直接传递给eval()进行解析。攻击者可以通过构造特定的Python代码,使stdout包含恶意代码片段,eval()会执行这些代码。例如,如果代码输出包含__import__('os').system('malicious_command'),eval()会将其作为Python表达式执行。由于eval()没有任何沙箱限制,恶意代码可以在服务器进程中以运行RAGFlow的用户的权限执行。此外,/api/v1/canvas/* 端点缺少适当的权限检查,/api/v1/retrieval/test_connection 等端点存在反向权限逻辑(允许低权限用户访问本应仅管理员可用的功能),进一步扩大了攻击面。攻击者可以通过组合利用多个端点实现链式攻击:先用低权限账号登录,访问Canvas执行代码,利用权限漏洞提权,最终获得服务器完全控制权。