Flowise: Broken Access Control in Stripe Subscription Endpoints Allows Cross-Tenant Billing Manipulation
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, several organization billing endpoints in packages/server/src/enterprise/routes/organization.route.ts and packages/server/src/enterprise/controllers/organization.controller.ts accept attacker-controlled Stripe subscriptionId values without verifying that the identifier belongs to the authenticated user's organization. An authenticated attacker can perform unauthorized Stripe subscription operations on other tenants, including changing subscription plans or modifying seat quantities, resulting in financial impact and service disruption. This issue is fixed in 3.1.3.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-70476
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 02:49 UTC · Revision 1
Source evidence
Flowise: Broken Access Control in Stripe Subscription Endpoints Allows Cross-Tenant Billing Manipulation
core-osv · Original sourcePublished 4 Aug 2026, 19:23 UTC
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, several organization billing endpoints in packages/server/src/enterprise/routes/organization.route.ts and packages/server/src/enterprise/controllers/organization.controller.ts accept attacker-controlled Stripe subscriptionId values without verifying that the identifier belongs to the authenticated user's organization. An authenticated attacker can perform unauthorized Stripe subscription operations on other tenants, including changing subscription plans or modifying seat quantities, resulting in financial impact and service disruption. This issue is fixed in 3.1.3.
osv:CVE-2026-70476
Complete source record
{
"id": "9c58c64327d7a73fae04d158b3505e081fd74d981578798753a0d855bd05376f",
"url": "https://osv.dev/vulnerability/CVE-2026-70476",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Flowise: Broken Access Control in Stripe Subscription Endpoints Allows Cross-Tenant Billing Manipulation",
"summary": "Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, several organization billing endpoints in packages/server/src/enterprise/routes/organization.route.ts and packages/server/src/enterprise/controllers/organization.controller.ts accept attacker-controlled Stripe subscriptionId values without verifying that the identifier belongs to the authenticated user's organization. An authenticated attacker can perform unauthorized Stripe subscription operations on other tenants, including changing subscription plans or modifying seat quantities, resulting in financial impact and service disruption. This issue is fixed in 3.1.3.",
"evidence": "osv:CVE-2026-70476",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-70476",
"aliases": [
"CVE-2026-70476",
"GHSA-gmmw-qg98-6j6p"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/flowiseai/flowise",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "09f099dbfda179e439ec677d06ad737375899eef"
},
{
"fixed": "4d7899d02ca370a5510406be5c91483085a412f9"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.1.3"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "4d7899d02ca370a5510406be5c91483085a412f9"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "09f099dbfda179e439ec677d06ad737375899eef"
}
],
"source": "REFERENCES_TAG",
"original_tag": "flowise@3.1.3"
}
]
}
}
],
"versions": [
"flowise@3.1.2",
"flowise-ui@3.1.2",
"flowise-components@3.1.2",
"flowise@3.1.1",
"flowise-ui@3.1.1",
"flowise-components@3.1.1",
"flowise@3.1.0",
"flowise-ui@3.1.0",
"flowise-components@3.1.0",
"pre-langchain-v1",
"flowise@3.0.13",
"flowise-ui@3.0.13",
"flowise-components@3.0.13",
"flowise@3.0.12",
"flowise-ui@3.0.12",
"flowise-components@3.0.12",
"flowise@3.0.11",
"flowise-ui@3.0.11",
"flowise-components@3.0.11",
"flowise@3.0.10",
"flowise-ui@3.0.10",
"flowise-components@3.0.10",
"flowise@3.0.9",
"flowise-ui@3.0.9",
"flowise-components@3.0.9",
"flowise@3.0.8",
"flowise-ui@3.0.8",
"flowise-components@3.0.8",
"flowise@3.0.7",
"flowise-ui@3.0.7",
"flowise-components@3.0.7",
"flowise@3.0.6",
"flowise-ui@3.0.6",
"flowise-components@3.0.6",
"flowise@3.0.5",
"flowise-ui@3.0.5",
"flowise-components@3.0.5",
"flowise@3.0.4",
"flowise-ui@3.0.4",
"flowise-components@3.0.4",
"flowise@3.0.3",
"flowise-ui@3.0.3",
"flowise-components@3.0.3",
"flowise@3.0.2",
"flowise-ui@3.0.2",
"flowise-components@3.0.2",
"flowise@3.0.1",
"flowise-ui@3.0.1",
"flowise-components@3.0.1",
"flowise@3.0.0",
"flowise-ui@3.0.0",
"flowise-components@3.0.0",
"flowise@2.2.8",
"flowise-ui@2.2.8",
"flowise-components@2.2.8",
"flowise@2.2.7-patch.1",
"flowise-ui@2.2.7-patch.1",
"flowise-components@2.2.7-patch.1",
"flowise@2.2.7",
"flowise-ui@2.2.7",
"flowise-components@2.2.7",
"flowise@2.2.6-hotfix.1",
"flowise@2.2.6",
"flowise-ui@2.2.6",
"flowise-components@2.2.6",
"flowise@2.2.5",
"flowise-ui@2.2.5",
"flowise-components@2.2.5",
"flowise@2.2.4",
"flowise-ui@2.2.4",
"flowise-components@2.2.4",
"flowise@2.2.3",
"flowise-ui@2.2.3",
"flowise-components@2.2.3",
"flowise@2.2.2",
"flowise-ui@2.2.2",
"flowise-components@2.2.2",
"flowise@2.2.1",
"flowise-ui@2.2.1",
"flowise-components@2.2.1",
"flowise@2.2.0",
"flowise-ui@2.2.0",
"flowise-components@2.2.0",
"flowise@2.1.5",
"flowise-ui@2.1.5",
"flowise-components@2.1.5",
"flowise@2.1.4",
"flowise-ui@2.1.4",
"flowise-components@2.1.4",
"flowise@2.1.3",
"flowise-ui@2.1.3",
"flowise-components@2.1.3",
"flowise@2.1.2",
"flowise-ui@2.1.2",
"flowise-components@2.1.2",
"flowise@2.1.1",
"flowise-ui@2.1.1",
"flowise-components@2.1.1",
"flowise@2.1.0",
"flowise-ui@2.1.0",
"flowise-components@2.1.0",
"flowise@2.0.7",
"flowise-ui@2.0.7",
"flowise-components@2.0.7",
"flowise@2.0.6",
"flowise-ui@2.0.6",
"flowise-components@2.0.6",
"flowise@2.0.5",
"flowise-ui@2.0.5",
"flowise-components@2.0.5",
"flowise@2.0.4",
"flowise-ui@2.0.4",
"flowise-components@2.0.4",
"flowise@2.0.3",
"flowise-ui@2.0.3",
"flowise-components@2.0.3",
"flowise@2.0.2",
"flowise-ui@2.0.2",
"flowise-components@2.0.2",
"flowise@1.8.4",
"flowise-ui@1.8.4",
"flowise-components@1.8.6",
"flowise@1.8.3",
"flowise-ui@1.8.3",
"flowise-components@1.8.4",
"flowise@1.8.2",
"flowise-ui@1.8.2",
"flowise-components@1.8.3",
"flowise@1.8.1",
"flowise-ui@1.8.1",
"flowise-components@1.8.1",
"flowise@1.8.0",
"flowise-ui@1.8.0",
"flowise-components@1.8.0",
"flowise@1.7.2",
"flowise-ui@1.7.2",
"flowise-components@1.7.2",
"flowise@1.7.1",
"flowise-ui@1.7.1",
"flowise-components@1.7.1",
"flowise@1.7.0",
"flowise-ui@1.7.0",
"flowise-components@1.7.0",
"flowise@1.6.6",
"flowise-ui@1.6.6",
"flowise-components@1.6.8",
"flowise@1.6.5",
"flowise-ui@1.6.5",
"flowise-components@1.6.7",
"flowise@1.6.4",
"flowise-ui@1.6.4",
"flowise-components@1.6.6",
"flowise@1.6.3",
"flowise-ui@1.6.3",
"flowise-components@1.6.5",
"flowise@1.6.2",
"flowise-ui@1.6.2",
"flowise-components@1.6.4",
"flowise@1.6.1",
"flowise-ui@1.6.1",
"flowise-components@1.6.3",
"flowise@1.6.0",
"flowise-ui@1.6.0",
"flowise-components@1.6.2",
"flowise@1.5.1",
"flowise-ui@1.5.1",
"flowise-components@1.6.1",
"flowise@1.5.0",
"flowise-ui@1.5.0",
"flowise-components@1.6.0",
"flowise@1.4.12",
"flowise-ui@1.4.9",
"flowise-components@1.5.3",
"flowise@1.4.11",
"flowise-ui@1.4.8",
"flowise-components@1.5.2",
"flowise@1.4.10",
"flowise-ui@1.4.7",
"flowise-components@1.5.1",
"flowise@1.4.9",
"flowise@1.4.8",
"flowise-ui@1.4.6",
"flowise-components@1.5.0",
"flowise@1.4.7",
"flowise-ui@1.4.5",
"flowise-components@1.4.9",
"flowise-components@1.4.8",
"flowise@1.4.6",
"flowise-ui@1.4.4",
"flowise-components@1.4.7",
"flowise@1.4.5",
"flowise-ui@1.4.3",
"flowise@1.4.4",
"flowise-ui@1.4.2",
"flowise-components@1.4.6",
"flowise@1.4.2",
"flowise-components@1.4.2",
"flowise@1.4.1",
"flowise-components@1.4.1",
"flowise@1.4.0",
"flowise-ui@1.4.0",
"flowise-components@1.4.0",
"flowise@1.3.9",
"flowise-ui@1.3.7",
"flowise-components@1.3.11",
"flowise-components@1.3.10",
"flowise@1.3.8",
"flowise-ui@1.3.6",
"flowise-components@1.3.9",
"flowise@1.3.7",
"flowise-ui@1.3.5",
"flowise-components@1.3.8",
"flowise@1.3.6",
"flowise-ui@1.3.4",
"flowise-components@1.3.7",
"flowise@1.3.5",
"flowise-ui@1.3.3",
"flowise-components@1.3.5",
"flowise@1.3.4",
"flowise-ui@1.3.2",
"flowise-components@1.3.4",
"flowise@1.3.3",
"flowise-ui@1.3.1",
"flowise-components@1.3.3",
"flowise@1.3.2",
"flowise-components@1.3.2",
"flowise@1.3.1",
"flowise-components@1.3.1",
"flowise@1.3.0",
"flowise-ui@1.3.0",
"flowise-components@1.3.0",
"flowise@1.2.16",
"flowise-ui@1.2.15",
"flowise-components@1.2.17",
"flowise@1.2.15",
"flowise-ui@1.2.14",
"flowise-components@1.2.16",
"flowise@1.2.14",
"flowise-ui@1.2.13",
"flowise-components@1.2.15",
"flowise@1.2.13",
"flowise-ui@1.2.12",
"flowise-components@1.2.14",
"flowise@1.2.11",
"flowise-ui@1.2.10",
"flowise-components@1.2.12",
"flowise@1.2.9",
"flowise-components@1.2.10",
"flowise@1.2.8",
"flowise-ui@1.2.7",
"flowise-components@1.2.9",
"flowise@1.2.7",
"flowise-ui@1.2.6",
"flowise-components@1.2.8",
"flowise@1.2.6",
"flowise-ui@1.2.5",
"flowise-components@1.2.7",
"flowise@1.2.5",
"flowise-ui@1.2.4",
"flowise-components@1.2.6",
"flowise@1.2.4",
"flowise-ui@1.2.3",
"flowise-components@1.2.5",
"flowise@1.2.3",
"flowise-ui@1.2.2",
"flowise-components@1.2.4",
"flowise-components@1.2.3",
"flowise@1.2.2",
"flowise-ui@1.2.1",
"flowise-components@1.2.2",
"flowise@1.2.1",
"flowise-ui@1.2.0",
"flowise-components@1.2.1",
"flowise@1.1.1",
"flowise-components@1.1.1",
"flowise@1.1.0",
"flowise-ui@1.1.0",
"flowise-components@1.1.0",
"flowise@1.0.1",
"flowise@1.0.0",
"flowise-ui@1.0.0",
"flowise-components@1.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-70476.json"
}
}
],
"modified": "2026-10-28T02:30:25.160133832Z",
"provider": "osv",
"references": [
"https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70476.json",
"https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-gmmw-qg98-6j6p",
"https://nvd.nist.gov/vuln/detail/CVE-2026-70476",
"https://github.com/FlowiseAI/Flowise/commit/4d7899d02ca370a5510406be5c91483085a412f9",
"https://github.com/FlowiseAI/Flowise/pull/6321"
],
"provider_metadata": {
"cwe_ids": [
"CWE-284",
"CWE-639"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70476.json"
}
},
"related_cves": [
{
"value": "CVE-2026-70476",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 492039,
"published_at": "2026-08-04T19:23:57.04+00:00"
}