Skip to main content

Flowise EUVDEUVD-2026-52811

| CVE-2026-70470 CRITICAL
Incomplete List of Disallowed Inputs (CWE-184)
2026-08-04 GitHub_M GHSA-52fh-8v99-63c2
9.5
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
9.5 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
9.0 CRITICAL

Network-reachable but AC:H because a reliable homoglyph payload must be forced through the LLM/config; S:C for Pyodide-to-host escape; full C/I/A on the compromised host.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Aug 04, 2026 - 18:02 EUVD
Source Code Evidence Fetched
Aug 04, 2026 - 18:01 vuln.today
Analysis Generated
Aug 04, 2026 - 18:01 vuln.today
CVE Published
Aug 04, 2026 - 17:30 cve.org
CRITICAL 9.5

DescriptionCVE.org

Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, Flowise validatePythonCodeForDataFrame in packages/components/src/pythonCodeValidator.ts can be bypassed with Unicode homoglyph identifiers, allowing arbitrary Python execution inside Pyodide and full OS command execution on the Flowise host via Pyodide js module interop. The validator gates pyodide.runPythonAsync in packages/components/nodes/agents/CSVAgent/CSVAgent.ts and packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts with an ASCII word-boundary blacklist. JavaScript regex word boundaries are ASCII-only, while Python 3 NFKC-normalizes identifiers at parse time, so homoglyph forms such as __cl𝐚ss__, __subcl𝐚sses__, __b𝐚se__, and __b𝐮iltins__ bypass the blacklist and are parsed as their ASCII equivalents. This issue is fixed in version 3.1.3.

AnalysisAI

Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDataFrame) can be defeated with Unicode homoglyph identifiers, letting an attacker run arbitrary Python that escapes the Pyodide sandbox and executes OS commands on the Flowise host with the process's privileges. The affected CSV Agent and Airtable Agent nodes gate LLM-generated (and config-supplied) Python through an ASCII word-boundary regex blacklist, which Python's NFKC identifier normalization silently rewrites back into the forbidden dunders. There is no public exploit identified at time of analysis and it is not in CISA KEV, but the GitHub advisory documents a complete, reproducible bypass technique, so weaponization is straightforward; the vendor rates it 9.5 (CVSS 4.0).

Technical ContextAI

The vulnerability class is CWE-184 (Incomplete List of Disallowed Inputs): a denylist that fails to account for equivalent encodings. Flowise runs untrusted/LLM-authored Python inside Pyodide (CPython compiled to WebAssembly) embedded in the Node.js host, and gates every pyodide.runPythonAsync call in packages/components/nodes/agents/CSVAgent/CSVAgent.ts (lines 147, 198/209) and AirtableAgent/AirtableAgent.ts (lines 186/197) with a regex blacklist in packages/components/src/pythonCodeValidator.ts. Two behaviors collide: JavaScript regex \b word boundaries are computed only against the ASCII class [A-Za-z0-9_], so a character like U+1D41A (mathematical bold small a) is treated as a non-word character and \b__class__\b never matches __cl𝐚ss__; meanwhile Python 3 (PEP 3131) NFKC-normalizes identifiers at parse time, so __cl𝐚ss__, __subcl𝐚sses__, __b𝐚se__, and __b𝐮iltins__ all resolve to their ASCII dunder equivalents. Dict string keys such as bi['__import__'] aren't normalized but can be assembled with chr() to dodge literal patterns. The classic escape __builtins__['__import__']('js') yields the JS host bridge, and process.mainModule.require('child_process').execSync then runs native commands on the host. The affected CPE is cpe:2.3:a:flowiseai:flowise (npm packages flowise and flowise-components).

RemediationAI

Vendor-released patch: 3.1.3 - upgrade both flowise and flowise-components to 3.1.3 or later (release: https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3; fix PR https://github.com/FlowiseAI/Flowise/pull/6499 and commit f4e2794f6a576b94578f2fdafbf49c2fb304626c). If you cannot upgrade immediately, the concrete compensating control is to remove or disable the CSV Agent and Airtable Agent nodes (both are flagged DEPRECATING and the fix effectively retires the Airtable Agent) and migrate to the AgentFlow Agent - the trade-off is loss of those specific CSV/Airtable query workflows. Additionally, place the Flowise prediction/chatflow endpoints behind authentication and network restrictions so untrusted users cannot invoke flows that reach pyodide.runPythonAsync, and run the Flowise process as a least-privileged, containerized user so a successful escape yields minimal host access - the trade-off is added operational overhead but it caps blast radius. Do not rely on the ASCII regex validator as a control, since NFKC normalization defeats it.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Share

EUVD-2026-52811 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy