Skip to content
Heist/ feed
Back to feed
High

Flowise: Broken Access Control in Stripe Subscription Endpoints Allows Cross-Tenant Billing Manipulation

Type: advisorySources: OSV

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 source

Published 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"
}