Back to Intelligence

Metasploit Releases 6 Langflow Exploit Modules (CVE-2026-0768, CVE-2026-0769, CVE-2026-10134): Detection and Remediation Guide

SA
Security Arsenal Team
October 23, 2026
11 min read

Rapid7's latest Metasploit Wrap Up is unusual, and not in a good way for defenders. Of the new modules shipped in this release, six target a single product: Langflow, the open-source, low-code LLM workflow builder that has been rapidly adopted by AI/ML engineering teams. The module set covers an authentication bypass (CVE-2026-93680), three separate unauthenticated remote code execution paths (CVE-2026-0768, CVE-2026-0769, and CVE-2026-10134), and two authenticated code execution flaws (CVE-2026-7873 and CVE-2026-93674) — collectively spanning Langflow releases 1.0.0 through 1.11.4. Credit goes to Metasploit contributor rmhowe425, with vulnerability research by Peter Girnus and n0k0.

The same release adds a pre-authentication code execution chain against OpenCTI (contributed by kmkz) and three new MongoDB auxiliary modules plus an Apache Solr version scanner from community contributor h00. But the Langflow cluster is the story: when exploit coverage for a single product matures from zero to six modules in one release cycle, exploitation pressure follows within days, not months. If Langflow is reachable in your environment — and in most organizations running AI pilots, it was stood up by a data science team without a security review — you need to inventory, patch, and instrument it this week.

Technical Analysis

What is Langflow and why is it a high-value target?

Langflow is a Python-based web application (typically served via Uvicorn/FastAPI) that lets users visually build LLM agent workflows. Three properties make it dangerous when exposed:

  1. It executes code by design. Langflow's core value proposition is running user-defined Python components inside flows. Any flaw in input validation or sandboxing is a short walk to RCE.
  2. It holds secrets. Langflow instances store API keys for OpenAI, Anthropic, vector databases, and internal tools. A compromised instance is a credential vault.
  3. It is often deployed insecurely. Default Docker deployments bind to port 7860, frequently with authentication disabled or with the default superuser, and they are routinely stood up on cloud VMs reachable from the internet.

Vulnerability set

CVETypeAuth RequiredAffected Range
CVE-2026-0768Remote Code ExecutionNo (unauthenticated)Langflow ≤ 1.11.4
CVE-2026-0769Remote Code ExecutionNo (unauthenticated)Langflow ≤ 1.11.4
CVE-2026-10134Remote Code ExecutionNo (unauthenticated)Langflow ≤ 1.11.4
CVE-2026-93680Authentication BypassNo (unauthenticated)Langflow ≤ 1.11.4
CVE-2026-7873Code ExecutionYes (authenticated)Langflow ≤ 1.11.4
CVE-2026-93674Code ExecutionYes (authenticated)Langflow ≤ 1.11.4

The three unauthenticated RCE paths are the priority. Multiple distinct unauthenticated execution vectors means attackers have redundancy — blocking one endpoint or filtering one payload pattern does not close the attack surface. The authentication bypass (CVE-2026-93680) is also compounding: it likely converts the two authenticated RCEs into effectively unauthenticated ones by yielding a valid session or token first.

Exploitation requirements and observable behavior

From a defender's perspective, successful exploitation of any of these modules produces a consistent observable: the Langflow server process (Python/Uvicorn) spawns an operating-system command interpreter or an unexpected child process. Typical post-exploitation behavior includes:

  • python/uvicorn spawning sh, bash, curl, wget, or nc to retrieve second-stage payloads
  • Outbound connections from the Langflow host to attacker infrastructure shortly after inbound HTTP requests to /api/v1/ endpoints
  • Newly created or modified flow/component files containing base64-encoded Python payloads
  • On Windows deployments (less common but present in dev environments), python.exe spawning cmd.exe or powershell.exe

Exploitation status

Exploit code is now public and weaponized — six working Metasploit modules lower the bar from "skilled researcher" to "anyone with Kali." At the time of writing, none of these CVEs have been confirmed on the CISA Known Exploited Vulnerabilities catalog, and Rapid7's disclosure does not describe confirmed in-the-wild exploitation. That window — post-publication of reliable exploit modules, pre-mass exploitation — is historically short for internet-facing developer tooling. Treat this as an imminent-exploitation scenario.

The same logic applies to the new OpenCTI pre-authentication chain and the MongoDB auxiliary modules: organizations running OpenCTI threat intel platforms or internet-reachable MongoDB instances should assume scanning begins immediately.

Detection & Response

The strongest, lowest-noise detection anchor is the process lineage: a Python/Uvicorn process should never spawn a shell in normal Langflow operation. That rule holds across virtually every legitimate deployment and catches all six modules post-exploitation, regardless of which CVE was used. Supplement it with proxy/WAF telemetry on Langflow API paths and outbound connection monitoring.

YAML
---
title: Langflow Server Process Spawning Shell or System Utility
description: Detects the Langflow/Uvicorn Python process spawning command interpreters or download utilities, consistent with post-exploitation activity from CVE-2026-0768, CVE-2026-0769, CVE-2026-10134, CVE-2026-7873, or CVE-2026-93674.
id: 8c4a1f92-3e7d-4b6a-9f21-5d0e2c8a7b31
status: experimental
references:
  - https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-langflow-mongodb-and-more
  - https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/05/12
tags:
  - attack.execution
  - attack.t1059
  - cve.2026.0768
  - cve.2026.10134
logsource:
  category: process_creation
  product: linux
detection:
  selection_parent:
    ParentCommandLine|contains:
      - 'uvicorn'
      - 'langflow'
  selection_child:
    Image|endswith:
      - '/sh'
      - '/bash'
      - '/dash'
      - '/curl'
      - '/wget'
      - '/nc'
      - '/ncat'
      - '/python'
      - '/python3'
  condition: selection_parent and selection_child
falsepositives:
  - Legitimate Langflow custom components that intentionally invoke subprocesses (rare; tune per deployment)
  - Health-check or orchestration scripts running under the same interpreter
level: high
---
title: Windows Python Process Spawning Command Interpreter - Langflow Post-Exploitation
description: Detects python.exe spawning cmd.exe or powershell.exe on Windows hosts running Langflow development instances, indicating code execution via the Langflow Metasploit modules.
id: 2f7b9d41-6a3c-4e58-b184-9c0d5e6f7a22
status: experimental
references:
  - https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-langflow-mongodb-and-more
  - https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/05/12
tags:
  - attack.execution
  - attack.t1059.003
  - cve.2026.0769
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith: '\python.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\curl.exe'
      - '\certutil.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Python-based build or automation tooling (Ansible, CI agents) — baseline per host before deploying broadly
level: high
---
title: Suspicious Requests to Langflow API Endpoints from External Sources
description: Detects inbound HTTP requests to Langflow API and flow-execution paths originating from external addresses, which may indicate reconnaissance or exploitation attempts against the Langflow CVE cluster.
id: 5e1c8a36-9b42-4d7f-a603-8f2b4d6e9c14
status: experimental
references:
  - https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-langflow-mongodb-and-more
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/05/12
tags:
  - attack.initial_access
  - attack.t1190
  - cve.2026.0768
  - cve.2026.93680
logsource:
  category: proxy
detection:
  selection_uri:
    cs-uri|contains:
      - '/api/v1/flows'
      - '/api/v1/process'
      - '/api/v1/validate'
      - '/api/v1/custom_component'
      - '/api/v1/login'
      - '/api/v1/auto_login'
  selection_method:
    cs-method:
      - 'POST'
      - 'PUT'
      - 'PATCH'
  condition: selection_uri and selection_method
falsepositives:
  - Legitimate internal Langflow API usage — scope this rule to externally sourced requests at your reverse proxy or WAF
level: medium

The following KQL hunts assume Linux Syslog and/or EDR telemetry is ingested into Microsoft Sentinel or Defender. The process-lineage hunt is the workhorse; the network hunt catches exploitation even when process telemetry is missing (common on containerized Langflow deployments).

KQL — Microsoft Sentinel / Defender
// Hunt 1: Python/Uvicorn spawning shells or download utilities (Linux Syslog or EDR)
// Targets post-exploitation from the Langflow CVE cluster (CVE-2026-0768, -0769, -10134, -7873, -93674)
let SuspiciousChildren = dynamic(["sh", "bash", "dash", "curl", "wget", "nc", "ncat", "socat"]);
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName has_any ("python", "python3", "uvicorn")
    or InitiatingProcessCommandLine has_any ("uvicorn", "langflow")
| where FileName has_any (SuspiciousChildren)
| project TimeGenerated, DeviceName, AccountName,
          InitiatingProcessCommandLine, FileName, ProcessCommandLine, RemoteIP
| order by TimeGenerated desc;

// Hunt 2: Inbound requests to Langflow API paths via firewall/proxy CEF logs
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where RequestURL has_any ("/api/v1/flows", "/api/v1/process", "/api/v1/custom_component",
                            "/api/v1/validate", "/api/v1/auto_login")
| where RequestMethod in ("POST", "PUT", "PATCH")
| summarize RequestCount = count(), DistinctSources = dcount(SourceIP)
    by SourceIP, RequestURL, DestinationHostName, bin(TimeGenerated, 1h)
| order by RequestCount desc;

// Hunt 3: Outbound connections from Langflow hosts to rare external destinations
// Useful for containerized deployments lacking process telemetry; tag Langflow hosts in a watchlist first
let LangflowHosts = (_GetWatchlist('LangflowHosts') | project SearchKey);
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where DeviceName in (LangflowHosts)
| where InitiatingProcessFileName has_any ("python", "python3", "uvicorn")
| where RemoteIPType == "Public"
| where RemoteUrl !has_any ("openai.com", "anthropic.com", "pypi.org", "huggingface.co") // expected egress
| summarize Connections = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
    by DeviceName, RemoteIP, RemoteUrl, RemotePort
| order by Connections asc; // rare destinations surface first

For endpoint forensics and proactive hunting on hosts you suspect may already be compromised, this Velociraptor artifact enumerates suspicious process lineages and recent shell-history artifacts that post-exploitation activity typically leaves behind.

VQL — Velociraptor
-- Hunt: Langflow Post-Exploitation Process Lineage and Artifacts
-- Deploy across Linux/Windows fleet; targets CVE-2026-0768/0769/10134/7873/93674 post-exploitation

LET suspicious_children <= SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)^(sh|bash|dash|curl|wget|nc|ncat|cmd\.exe|powershell\.exe|pwsh\.exe)$'

LET python_parents <= SELECT Pid, Name, CommandLine
FROM pslist()
WHERE CommandLine =~ '(?i)(uvicorn|langflow)'
   OR Name =~ '(?i)python'

SELECT child.Pid AS ChildPid,
       child.Name AS ChildName,
       child.CommandLine AS ChildCommandLine,
       child.Username AS ChildUser,
       child.CreateTime AS ChildStartTime,
       parent.Pid AS ParentPid,
       parent.CommandLine AS ParentCommandLine
FROM suspicious_children AS child
JOIN python_parents AS parent
ON child.Ppid = parent.Pid

Run this remediation and verification script against every host identified in your Langflow inventory. It checks the installed version, confirms exposure of the default port, and upgrades to the latest release.

Bash / Shell
#!/bin/bash
# Langflow CVE cluster remediation check — CVE-2026-0768, -0769, -10134, -93680, -7873, -93674
# Run on each host identified as running Langflow

set -e

echo "=== [1] Identify Langflow installation and version ==="
pip show langflow 2>/dev/null | grep -E '^(Name|Version|Location)' || echo "langflow not found via system pip"
# Check virtualenvs and containers
find /opt /home /srv -maxdepth 4 -name "langflow*" -type d 2>/dev/null | head -20
docker ps --format '{{.Names}} {{.Image}}' 2>/dev/null | grep -i langflow || echo "no langflow containers running"

echo "=== [2] Check for network exposure on default port 7860 ==="
ss -tlnp 2>/dev/null | grep -E ':7860' || echo "port 7860 not listening"
# Flag any listener bound to 0.0.0.0 (internet-reachable risk)
ss -tlnp 2>/dev/null | grep -E '0\.0\.0\.0:7860' && echo "WARNING: Langflow bound to all interfaces" || true

echo "=== [3] Check Langflow process lineage for active compromise ==="
ps auxf | grep -E '(uvicorn|langflow)' | grep -v grep || echo "no langflow process found"
# Look for shells parented to python (post-exploitation indicator)
ps -eo pid,ppid,comm | awk 'NR==FNR{py[$1]; next} ($2 in py) && ($3 ~ /^(sh|bash|curl|wget|nc)$/) {print "SUSPICIOUS:", $0}' <(ps -eo pid,comm | awk '$2 ~ /python/ {print $1}') - || true

echo "=== [4] Upgrade Langflow to latest patched release ==="
# Affected: 1.0.0 through 1.11.4 — upgrade to the newest release > 1.11.4
pip install --upgrade langflow 2>&1 | tail -5
pip show langflow | grep -E '^Version'

echo "=== [5] Hardening verification ==="
echo "- Confirm LANGFLOW_SUPERUSER credentials are not defaults"
echo "- Confirm Langflow is NOT reachable from the internet (place behind VPN/SSO reverse proxy)"
echo "- Rotate all LLM API keys and DB credentials stored in any instance that was exposed"
echo "=== Done. Review all WARNING and SUSPICIOUS output above. ==="

Remediation

  1. Inventory first. Search your CMDB, cloud asset inventory, and EDR for Langflow processes, port 7860 listeners, and langflow container images. Expect shadow deployments by data science and AI pilot teams — these are the instances most likely to be unpatched and internet-facing.
  2. Upgrade immediately. All Langflow releases 1.0.0 through 1.11.4 are in scope for the six-CVE cluster. Upgrade to the latest release published after 1.11.4 and verify with pip show langflow. Monitor the Langflow GitHub security advisories and the Rapid7 disclosure for the vendor's official fixed-version guidance as it is published.
  3. Remove internet exposure now — this is the workaround. There is no supported configuration toggle that neutralizes three distinct unauthenticated RCE paths. If patching is delayed, take Langflow off public reachability: bind to localhost, place behind an authenticated reverse proxy (SSO/mTLS), or restrict to VPN. This single step eliminates the unauthenticated attack surface.
  4. Rotate credentials. Any Langflow instance that was internet-reachable should be treated as potentially compromised. Rotate every API key, database credential, and LLM provider token stored in the instance.
  5. Hunt before you patch. Deploy the process-lineage detections above and review the last 7–14 days of telemetry. Patching destroys forensic evidence of prior exploitation; check for shells parented to Python and unexpected outbound connections first.
  6. Don't ignore the rest of the release. If you run OpenCTI, treat the new pre-auth Metasploit chain as equally urgent — patch and confirm the platform is not internet-exposed. If you run MongoDB or Apache Solr, expect increased scanning driven by the three new MongoDB auxiliary modules and the Solr version scanner; verify authentication is enforced and no instances answer on public interfaces.

The broader lesson: LLM orchestration tooling is the new developer-workstation target class. It ships with code execution as a feature, holds high-value secrets, and is rarely under security governance. Get it into inventory and patch SLAs before the next wrap-up like this one.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.