Skip to content
Verified Unauthenticated RCE in Langflow via public flow build endpoint
REPRO-2026-00201 langflow · pip RCE Jul 2, 2026 .txt
Severity CRITICAL
Confidence HIGH
Reproduced in 25m 8s
Tool calls 259
Spend $5.45
Affected <= 1.8.2 (all versions < 1.9.0)
Fixed in 1.9.0
$ pruva-verify REPRO-2026-00201
or curl -O https://pruva.dev/api/v1/reproductions/REPRO-2026-00201/artifacts/bundle/repro/reproduction_steps.sh && chmod +x reproduction_steps.sh && ./reproduction_steps.sh
Run in a VM or disposable container. This exploits a real vulnerability.
02 · The vulnerability

The POST /api/v1/build_public_tmp/{flow_id}/flow endpoint in Langflow (<1.9.0) accepts attacker-controlled data containing arbitrary Python code in custom component nodes. The unauthenticated endpoint passes the provided data to start_flow_build(), which builds a graph and executes the custom component code via exec() without sandboxing. This allows an unauthenticated, remote attacker to obtain RCE with a single HTTP request. Affected: langflow pypi <1.9.0. Fixed: 1.9.0. Setup: run a vulnerable Langflow instance (e.g., langflowai/langflow:1.8.1 or pip install langflow==1.8.1), create a public flow, then POST to the public build endpoint with a custom component whose top-level code contains an os.system() payload. CISA KEV added 2026-03-25.

03 · Root cause
Variant analysis
04 · Reproduction transcript

The agent's step-by-step process — every tool call, every handoff, the moment the exploit fired. Phases: support triages the advisory · repro reproduces it · vuln_variant confirms the fix blocks it · judge verifies.

Loading session...

05 · Artifacts

Scripts, logs, diffs, and output captured during the reproduction.

bundle/ticket.md0.9 KB
bundle/ticket.json1.4 KB
bundle/repro/repro_attempt.py7.9 KB
bundle/repro/validation_verdict.json0.8 KB
bundle/repro/runtime_manifest.json0.9 KB
bundle/logs/reproduction_steps.log6.5 KB
bundle/logs/container_vuln_1.log3.2 KB
bundle/logs/result_vuln_1.json0.5 KB
bundle/logs/result_vuln_1_stderr.log0.0 KB
bundle/logs/container_vuln_2.log3.2 KB
bundle/logs/result_vuln_2.json0.5 KB
bundle/logs/result_vuln_2_stderr.log0.0 KB
bundle/logs/container_fixed_1.log3.4 KB
bundle/logs/result_fixed_1.json0.4 KB
bundle/logs/result_fixed_1_stderr.log0.0 KB
bundle/logs/container_fixed_2.log3.4 KB
bundle/logs/result_fixed_2.json0.4 KB
bundle/logs/result_fixed_2_stderr.log0.0 KB
bundle/logs/proof_vuln_1.txt0.1 KB
bundle/logs/proof_vuln_2.txt0.1 KB
bundle/logs/vuln_variant/reproduction_steps.log11.8 KB
bundle/logs/vuln_variant/claimed_fixed_image_identity.txt0.4 KB
bundle/logs/vuln_variant/followup_fixed_image_identity.txt0.4 KB
bundle/logs/vuln_variant/container_claimed_fixed_1.log3.0 KB
bundle/logs/vuln_variant/result_claimed_fixed_1.json0.5 KB
bundle/logs/vuln_variant/result_claimed_fixed_1_stderr.log0.0 KB
bundle/logs/vuln_variant/container_claimed_fixed_2.log2.9 KB
bundle/logs/vuln_variant/result_claimed_fixed_2.json0.5 KB
bundle/logs/vuln_variant/result_claimed_fixed_2_stderr.log0.0 KB
bundle/logs/vuln_variant/container_followup_fixed_1.log89.8 KB
bundle/logs/vuln_variant/result_followup_fixed_1.json0.4 KB
bundle/logs/vuln_variant/result_followup_fixed_1_stderr.log0.0 KB
bundle/logs/vuln_variant/container_followup_fixed_2.log89.8 KB
bundle/logs/vuln_variant/result_followup_fixed_2.json0.4 KB
bundle/logs/vuln_variant/result_followup_fixed_2_stderr.log0.0 KB
bundle/logs/vuln_variant/proof_claimed_fixed_1.txt0.1 KB
bundle/logs/vuln_variant/proof_claimed_fixed_2.txt0.1 KB
bundle/logs/vuln_variant/fixed_version.txt0.5 KB
bundle/logs/vuln_variant/claimed_fixed_version.txt0.5 KB
bundle/vuln_variant/variant_attempt.py8.9 KB
bundle/vuln_variant/runtime_manifest.json1.4 KB
bundle/vuln_variant/validation_verdict.json0.9 KB
bundle/vuln_variant/source_identity.json1.9 KB
bundle/vuln_variant/variant_manifest.json5.1 KB
bundle/vuln_variant/patch_analysis.md10.7 KB
bundle/vuln_variant/root_cause_equivalence.json3.3 KB
bundle/repro/reproduction_steps.sh10.1 KB
bundle/repro/rca_report.md10.2 KB
bundle/vuln_variant/reproduction_steps.sh11.7 KB
bundle/vuln_variant/rca_report.md15.2 KB