CVE-2026-79725
Executive Summary
CVE-2026-79725 is a high-severity improper access control vulnerability affecting IBM Langflow OSS versions 1.0.0 through 1.11.5. An authenticated remote attacker can exploit weak authorization controls to read arbitrary files on the underlying host, resulting in a confidentiality impact rated High under CVSS v3.1. With no vendor patch, no public proof-of-concept, and no CISA KEV listing currently identified, the primary risk is targeted exploitation by insiders or attackers holding low-privileged Langflow accounts.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability is classified under CWE-284 (Improper Access Control), and the NVD description states that Langflow OSS 1.0.0 through 1.11.5 "could allow a remote authenticated attacker to read arbitrary files due to improper access control." The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N tells us several precise things about the mechanism:
- AV:N (Network) — the attack is launched over the network, meaning the Langflow service must be reachable by the attacker (typically via HTTP/HTTPS on the Langflow API or web UI).
- AC:L (Low complexity) — no unusual preconditions or race windows are required; the exploit path is straightforward once the attacker has a valid session.
- PR:L (Low privileges) — the attacker must be authenticated, but only at the lowest privilege tier. A standard, non-administrative Langflow user account is sufficient.
- UI:N (No user interaction) — no victim needs to click a link or open a file; the attacker acts alone.
- S:U (Unchanged scope) — the exploited component and the impacted component are the same; the vulnerability does not let the attacker pivot to another security authority boundary.
- C:H / I:N / A:N — the sole impact is a High confidentiality breach. The attacker can read files but cannot modify or delete them, and cannot cause a denial of service through this specific flaw.
The root cause is an authorization/access-control weakness: the application fails to properly enforce which authenticated users are permitted to trigger file-read functionality. In Langflow's architecture, components and API endpoints process user-supplied configuration and inputs to construct and execute flows. When access control over file-access or flow-component operations is missing, an attacker who can create or invoke a flow component with file-path inputs may cause the server process to return the contents of arbitrary files readable by that process's OS user.
No specific function names, endpoints, or parameter names are present in the NVD description or CNA title, so the precise sink (e.g., a particular file component or download handler) cannot be confirmed from the provided data. What is certain is the vulnerability class: a missing or broken authorization check on a server-side file access routine. Because Langflow is a low-code LLM application builder frequently deployed as a Docker container and exposed to internal networks or the public internet for prototyping, the confidentiality exposure can be significant — configuration files, environment variables, API keys for LLM providers, cloud credentials, and potentially container-mounted secrets become readable.
The unpatched status (patch confidence 0/4) means defenders cannot rely on a vendor fix and must compensate with network controls and authorization hardening until IBM publishes an advisory.
Exploitation Scenarios
The attack chain is inferred from the vulnerability class (improper access control leading to arbitrary file read) because no public PoC, exploit code, or Nuclei template exists for this CVE. The steps below are described at the vulnerability-class level and deliberately avoid inventing endpoints, function names, or parameters not present in the source data.
1) Reconnaissance / Target Identification The attacker identifies an internet- or intranet-exposed Langflow OSS instance running a version in the 1.0.0–1.11.5 range. Discovery is typically via Shodan/Censys queries for Langflow web UIs (see Shodan dorks), banner/version disclosure from the login or health pages, or internal vulnerability scanning that fingerprints the deployed version. HTTP response headers, static assets, and any unauthenticated version endpoint can confirm the vulnerable range.
2) Authentication and Access Setup Because the CVSS vector specifies PR:L, the attacker needs only a low-privileged authenticated session. This can be obtained through legitimate registration on an open instance, a previously compromised low-privilege account, credential stuffing against weak passwords, or abuse of any default credentials present in the deployment. Once authenticated, the attacker has the minimum access required by the vulnerability definition.
3) Triggering the Flaw The attacker exercises application functionality that reads files from the server filesystem. In improper-access-control vulnerabilities of this class, the flaw is that the authorization layer does not verify whether the requesting user should be permitted to access the underlying file operation. The attacker submits a crafted request through the authenticated API or web interface that references a file path outside the intended scope (for example, absolute paths or path traversal sequences). Because access control is improperly enforced, the server processes the request and returns the file contents in the response body.
4) Post-Exploitation Impact Successful exploitation yields read access to files readable by the Langflow server process. High-value targets include Langflow configuration files, environment files containing LLM provider API keys and database credentials, mounted Kubernetes/Docker secrets, cloud SDK credential files, and any source code or configuration on the host. The attacker does not gain write or delete capability through this flaw (I:N, A:N), but the stolen secrets can enable lateral movement, cloud account takeover, or supply-chain compromise of the Langflow deployment itself. Because no public exploit exists, real-world exploitation is currently most plausible by insider threats, red teams, or opportunistic attackers performing targeted credential harvesting.
Impact Assessment
Business impact is dominated by confidentiality loss. The CVSS base score of 6.5 is computed from C:H (High confidentiality), I:N (no integrity), and A:N (no availability), with a low-privileged authenticated network attacker and no user interaction. In practical terms:
- Data Exposure: Arbitrary file read can expose API keys, database credentials, private keys, cloud tokens, and proprietary prompts or model configurations. Depending on what is mounted into the Langflow container, the blast radius can extend well beyond Langflow itself.
- Affected Systems: Any Langflow OSS deployment in versions 1.0.0 through 1.11.5 that exposes its API/UI to a network reachable by an authenticated user. Multi-tenant or internet-facing prototyping instances are highest risk.
- Blast Radius: Because scope is Unchanged, the direct impact is confined to the Langflow host and its readable files. However, secrets harvested from those files frequently grant access to downstream systems (cloud providers, LLM APIs, databases), indirectly expanding the compromise.
- Likelihood: Moderate. Authentication is required, and no public exploit exists, which suppresses mass exploitation. But the low privilege requirement and high value of Langflow's stored secrets make it an attractive target for targeted actors and insider threats.
- Severity Rationale: 6.5 Medium-to-High severity reflects serious data exposure balanced against the authentication prerequisite and confinement of impact to confidentiality.
Detection Guidance
Sigma Rule
title: Langflow OSS Improper Access Control Arbitrary File Read (CVE-2026-79725)
id: 4f9c2e17-8a3b-4d6e-b7c1-9e2f5a6d8b04
status: experimental
description: Detects attempts to exploit CVE-2026-79725 in IBM Langflow OSS 1.0.0-1.11.5, where an authenticated user triggers improper access control to read arbitrary files.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-79725
author: valtersit.com Threat Intelligence
date: 2026/01/01
tags:
- attack.t1190
- attack.initial_access
- cve.2026.79725
logsource:
category: webserver
product: generic
detection:
selection_method:
cs-method:
- GET
- POST
selection_paths:
- 'c-uri|contains':
- 'file'
- 'download'
- 'path'
- 'read'
selection_traversal:
- 'cs-uri-query|contains':
- '../'
- '..%2f'
- '..\\'
- '%2e%2e%2f'
- '/etc/passwd'
- '/etc/shadow'
- 'c:\\windows'
condition: selection_method and selection_paths and selection_traversal
falsepositives:
- Legitimate administrative file management with path parameters
- Security scanners and fuzzers
level: high
YARA Rule
rule CVE_2026_79725_Langflow_FileRead
{
meta:
description = "Detects Langflow OSS arbitrary file read exploitation patterns in HTTP request/response artifacts (CVE-2026-79725)"
author = "valtersit.com Threat Intelligence"
date = "2026-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-79725"
cve = "CVE-2026-79725"
strings:
$lf1 = "langflow" ascii nocase
$trav1 = "../../" ascii
$trav2 = "../.." ascii
$trav3 = "..%2f" ascii nocase
$trav4 = "%2e%2e%2f" ascii nocase
$tgt1 = "/etc/passwd" ascii
$tgt2 = "/etc/shadow" ascii
$tgt3 = "/root/.ssh" ascii
$tgt4 = "c:\\windows\\system32" ascii nocase
$env1 = ".env" ascii
$secret1 = "api_key" ascii nocase
$secret2 = "OPENAI_API_KEY" ascii
$secret3 = "aws_secret_access_key" ascii nocase
condition:
$lf1 and (
any of ($trav*) or
any of ($tgt*) and any of ($trav*, $env1)
) or
($lf1 and 2 of ($secret*) and any of ($trav*, $tgt*))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-79725 Langflow OSS Arbitrary File Read Attempt"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"langflow"; nocase; http.uri; pcre:"/(\.\.\/|\.\.%2f|%2e%2e%2f|%2e%2e\/)/i"; reference:cve,CVE-2026-79725; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-79725; classtype:attempted-recon; sid:202679725; rev:1;)
alert http any any -> any any (msg:"CVE-2026-79725 Langflow OSS Sensitive File Target in Request"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"langflow"; nocase; http.request_body; content:"/etc/passwd"; reference:cve,CVE-2026-79725; classtype:attempted-recon; sid:202679726; rev:1;)
alert http any any -> any any (msg:"CVE-2026-79725 Langflow OSS File Read Response Leak"; flow:established,to_client; http.response_body; content:"root:x:0:0"; reference:cve,CVE-2026-79725; classtype:successful-recon-limited; sid:202679727; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=5m
[ network where network.protocol == "http" and
http.request.method in ("GET", "POST") and
(http.url : "*langflow*") and
(http.url : "*../*" or http.url : "*..%2f*" or http.url : "*%2e%2e*") ]
[ network where network.protocol == "http" and
http.response.status_code == 200 and
http.response.body : ("*root:x:0:0*", "*aws_secret_access_key*", "*OPENAI_API_KEY*", "*PRIVATE KEY*") ]
Splunk SPL Query
index=web OR index=proxy OR index=langflow
(sourcetype=access_combined OR sourcetype=nginx:access OR sourcetype=langflow:*)
| eval uri_lower = lower(uri)
| where (match(uri_lower, "langflow")
AND (like(uri_lower, "%../%") OR like(uri_lower, "%..%2f%") OR like(uri_lower, "%2e%2e%2f%")
OR like(uri_lower, "%/etc/passwd%") OR like(uri_lower, "%/etc/shadow%")
OR like(uri_lower, "%\.env%") OR like(uri_lower, "%/root/.ssh%")))
| stats count min(_time) as first_seen max(_time) as last_seen
values(status) as status_codes values(uri) as uris
by src_ip, dest_ip, user, cs_username
| where count > 2
| convert ctime(first_seen) ctime(last_seen)
| sort - count
Wazuh OSSEC Rule
<group name="web,langflow,cve_2026_79725,">
<rule id="100720" level="10">
<if_sid>31100,31101,31103</if_sid>
<field name="url">langflow</field>
<regex type="pcre2">(\.\./|\.\.%2f|%2e%2e%2f|/etc/passwd|/etc/shadow|\.env|/root/\.ssh)</regex>
<description>CVE-2026-79725: Langflow OSS possible arbitrary file read / path traversal attempt detected</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
<rule id="100721" level="12">
<if_sid>100720</if_sid>
<field name="status">200</field>
<description>CVE-2026-79725: Langflow OSS file read attempt returned HTTP 200 - possible successful exploitation</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No patch references, vendor advisory, or version fix have been identified from any tracked source. IBM Langflow OSS versions 1.0.0 through 1.11.5 are believed to be affected in full, and no workaround has been published by the vendor.
1) Immediate Mitigations (no patch required)
- Restrict network exposure. Do not expose Langflow OSS instances to the public internet. Place them behind a VPN, zero-trust gateway, or internal-only reverse proxy. This eliminates the AV:N attack vector for most real-world attackers.
- Enforce strong authentication and least privilege. Since the flaw requires only a low-privileged authenticated account (PR:L), audit all Langflow accounts, remove unused or shared accounts, rotate credentials, and enable MFA where supported. Reduce the number of users who can create or invoke flows until the issue is fixed.
- Apply egress and file-system isolation. Run Langflow in a hardened container with a read-only root filesystem, drop unnecessary Linux capabilities, and avoid mounting host secrets, SSH keys, cloud credential files, or sensitive
.envfiles into the container. Use a dedicated low-privilege OS user. - Network segmentation and monitoring. Deploy the detection controls in this report and alert on path-traversal or sensitive-file strings in HTTP requests to Langflow endpoints.
2) Patch / Upgrade Steps
- Monitor IBM's official Langflow OSS security advisories and the NVD entry for CVE-2026-79725 for a fixed release and CVE-to-version mapping.
- When a patch is released, upgrade to the first fixed version, verify the version change, and re-test that arbitrary file read is no longer possible from a low-privileged account.
- Until then, treat any version in 1.0.0–1.11.5 as vulnerable; do not assume a later minor release fixes it without vendor confirmation.
3) Long-Term Hardening
- Implement centralized authorization checks (deny-by-default) for all server-side file access operations, and validate/normalize user-supplied paths against an allow-list.
- Integrate secrets management (e.g., vault-backed injection) rather than storing credentials in files readable by the app user.
- Adopt secure SDLC with authorization unit tests, SAST/DAST coverage for broken access control (CWE-284), and periodic red-team validation of file-handling endpoints.
- Maintain continuous SBOM-based version tracking so that affected Langflow deployments are identified immediately when a fix ships.
References
- NVD Entry — CVE-2026-79725: https://nvd.nist.gov/vuln/detail/CVE-2026-79725
- MITRE CWE-284 (Improper Access Control): https://cwe.mitre.org/data/definitions/284.html
- IBM Security / Langflow OSS vendor advisories: https://www.ibm.com/security (check IBM Product Security for Langflow disclosures)
- FIRST EPSS (no score available at time of writing): https://www.first.org/epss/
- CISA Known Exploited Vulnerabilities Catalog (CVE-2026-79725 not listed as of report date): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Exploit-in-the-wild / threat actor assessment: No public exploit code, Nuclei template, or proof-of-concept currently exists for CVE-2026-79725, and the vulnerability is not listed in CISA KEV. There is no confirmed evidence of active exploitation or attribution to a specific threat actor campaign at this time. Detection content in this report is inferred from the vulnerability class (improper access control / arbitrary file read) and should be tuned before production deployment to account for legitimate path parameters and scanner traffic.