Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by...

zetlyn/cve-ghsa vulnerability ghsa GHSA-2jfx-whrm-9j49 cve CVE-2026-100609 known 2026-09-26

https://github.com/advisories/GHSA-2jfx-whrm-9j49

Properties

cvss6.8
receipt
Source
GitHub advisories
Its words
6.8
Read by
field:cvss.score
Said since
2026-09-28 11:44 UTC
Last answered
2026-10-06 13:46 UTC
Original
open at the source
What the source handed over
{
  "credits": [],
  "cve_id": "CVE-2026-100609",
  "cvss": {
    "score": 6.8,
    "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
  },
  "cvss_severities": {
    "cvss_v3": {
      "score": 6.8,
      "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
    },
    "cvss_v4": {
      "score": 7.6,
      "vector_string": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/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"
    }
  },
  "cwes": [
    {
      "cwe_id": "CWE-639",
      "name": "Authorization Bypass Through User-Controlled Key"
    }
  ],
  "description": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by ID without filtering on the requesting user's workspace (findOneBy({ id: credentialId }) with no workspaceId condition) in several code paths: getAllOpenaiAssistants/getSingleOpenaiAssistant (GET /api/v1/openai-assistants and /api/v1/openai-assistants/:id), uploadFilesToAssistant (POST /api/v1/openai-assistants-file/upload/), deleteAssistant (DELETE /api/v1/assistants/:id, reachable by first importing a poisoned assistant row via POST /api/v1/export-import/import), and the shared helper used by getVoices (GET /api/v1/text-to-speech/voices). An authenticated user of one workspace can supply a credential UUID belonging to another workspace, causing the server to decrypt and use that workspace's OpenAI or ElevenLabs API key on the attacker's behalf. No patched version was available at the time of publication.",
  "epss": {
    "percentage": 0.00233,
    "percentile": 0.12799
  },
  "ghsa_id": "GHSA-2jfx-whrm-9j49",
  "github_reviewed_at": null,
  "html_url": "https://github.com/advisories/GHSA-2jfx-whrm-9j49",
  "identifiers": [
    {
      "type": "GHSA",
      "value": "GHSA-2jfx-whrm-9j49"
    },
    {
      "type": "CVE",
      "value": "CVE-2026-100609"
    }
  ],
  "nvd_published_at": "2026-09-26T14:16:41Z",
  "published_at": "2026-09-26T15:31:14Z",
  "references": [
    "https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-27w2-26m5-x82c",
    "https://nvd.nist.gov/vuln/detail/CVE-2026-100609",
    "https://www.vulncheck.com/advisories/flowise-through-3.1.4-insecure-direct-object-reference-via-credential",
    "https://github.com/advisories/GHSA-2jfx-whrm-9j49"
  ],
  "repository_advisory_url": null,
  "severity": "high",
  "source_code_location": "",
  "summary": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by...",
  "type": "unreviewed",
  "updated_at": "2026-09-26T15:31:21Z",
  "url": "https://api.github.com/advisories/GHSA-2jfx-whrm-9j49",
  "vulnerabilities": [],
  "withdrawn_at": null
}
cweCWE-639
receipt
Source
GitHub advisories
Its words
CWE-639
Read by
field:cwes[].cwe_id
Said since
2026-09-28 11:44 UTC
Last answered
2026-10-06 13:46 UTC
Original
open at the source
What the source handed over
{
  "credits": [],
  "cve_id": "CVE-2026-100609",
  "cvss": {
    "score": 6.8,
    "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
  },
  "cvss_severities": {
    "cvss_v3": {
      "score": 6.8,
      "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
    },
    "cvss_v4": {
      "score": 7.6,
      "vector_string": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/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"
    }
  },
  "cwes": [
    {
      "cwe_id": "CWE-639",
      "name": "Authorization Bypass Through User-Controlled Key"
    }
  ],
  "description": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by ID without filtering on the requesting user's workspace (findOneBy({ id: credentialId }) with no workspaceId condition) in several code paths: getAllOpenaiAssistants/getSingleOpenaiAssistant (GET /api/v1/openai-assistants and /api/v1/openai-assistants/:id), uploadFilesToAssistant (POST /api/v1/openai-assistants-file/upload/), deleteAssistant (DELETE /api/v1/assistants/:id, reachable by first importing a poisoned assistant row via POST /api/v1/export-import/import), and the shared helper used by getVoices (GET /api/v1/text-to-speech/voices). An authenticated user of one workspace can supply a credential UUID belonging to another workspace, causing the server to decrypt and use that workspace's OpenAI or ElevenLabs API key on the attacker's behalf. No patched version was available at the time of publication.",
  "epss": {
    "percentage": 0.00233,
    "percentile": 0.12799
  },
  "ghsa_id": "GHSA-2jfx-whrm-9j49",
  "github_reviewed_at": null,
  "html_url": "https://github.com/advisories/GHSA-2jfx-whrm-9j49",
  "identifiers": [
    {
      "type": "GHSA",
      "value": "GHSA-2jfx-whrm-9j49"
    },
    {
      "type": "CVE",
      "value": "CVE-2026-100609"
    }
  ],
  "nvd_published_at": "2026-09-26T14:16:41Z",
  "published_at": "2026-09-26T15:31:14Z",
  "references": [
    "https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-27w2-26m5-x82c",
    "https://nvd.nist.gov/vuln/detail/CVE-2026-100609",
    "https://www.vulncheck.com/advisories/flowise-through-3.1.4-insecure-direct-object-reference-via-credential",
    "https://github.com/advisories/GHSA-2jfx-whrm-9j49"
  ],
  "repository_advisory_url": null,
  "severity": "high",
  "source_code_location": "",
  "summary": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by...",
  "type": "unreviewed",
  "updated_at": "2026-09-26T15:31:21Z",
  "url": "https://api.github.com/advisories/GHSA-2jfx-whrm-9j49",
  "vulnerabilities": [],
  "withdrawn_at": null
}
severityhigh
From 7.0 to 8.9.
receipt
Source
GitHub advisories
Its words
high
Read by
field:severity
Said since
2026-09-28 11:44 UTC
Last answered
2026-10-06 13:46 UTC
Original
open at the source
What the source handed over
{
  "credits": [],
  "cve_id": "CVE-2026-100609",
  "cvss": {
    "score": 6.8,
    "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
  },
  "cvss_severities": {
    "cvss_v3": {
      "score": 6.8,
      "vector_string": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
    },
    "cvss_v4": {
      "score": 7.6,
      "vector_string": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/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"
    }
  },
  "cwes": [
    {
      "cwe_id": "CWE-639",
      "name": "Authorization Bypass Through User-Controlled Key"
    }
  ],
  "description": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by ID without filtering on the requesting user's workspace (findOneBy({ id: credentialId }) with no workspaceId condition) in several code paths: getAllOpenaiAssistants/getSingleOpenaiAssistant (GET /api/v1/openai-assistants and /api/v1/openai-assistants/:id), uploadFilesToAssistant (POST /api/v1/openai-assistants-file/upload/), deleteAssistant (DELETE /api/v1/assistants/:id, reachable by first importing a poisoned assistant row via POST /api/v1/export-import/import), and the shared helper used by getVoices (GET /api/v1/text-to-speech/voices). An authenticated user of one workspace can supply a credential UUID belonging to another workspace, causing the server to decrypt and use that workspace's OpenAI or ElevenLabs API key on the attacker's behalf. No patched version was available at the time of publication.",
  "epss": {
    "percentage": 0.00233,
    "percentile": 0.12799
  },
  "ghsa_id": "GHSA-2jfx-whrm-9j49",
  "github_reviewed_at": null,
  "html_url": "https://github.com/advisories/GHSA-2jfx-whrm-9j49",
  "identifiers": [
    {
      "type": "GHSA",
      "value": "GHSA-2jfx-whrm-9j49"
    },
    {
      "type": "CVE",
      "value": "CVE-2026-100609"
    }
  ],
  "nvd_published_at": "2026-09-26T14:16:41Z",
  "published_at": "2026-09-26T15:31:14Z",
  "references": [
    "https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-27w2-26m5-x82c",
    "https://nvd.nist.gov/vuln/detail/CVE-2026-100609",
    "https://www.vulncheck.com/advisories/flowise-through-3.1.4-insecure-direct-object-reference-via-credential",
    "https://github.com/advisories/GHSA-2jfx-whrm-9j49"
  ],
  "repository_advisory_url": null,
  "severity": "high",
  "source_code_location": "",
  "summary": "Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by...",
  "type": "unreviewed",
  "updated_at": "2026-09-26T15:31:21Z",
  "url": "https://api.github.com/advisories/GHSA-2jfx-whrm-9j49",
  "vulnerabilities": [],
  "withdrawn_at": null
}

Text

Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by... Flowise (npm packages `flowise` and `flowise-components`) through 3.1.4 looks up credentials by ID without filtering on the requesting user's workspace (findOneBy({ id: credentialId }) with no workspaceId condition) in several code paths: getAllOpenaiAssistants/getSingleOpenaiAssistant (GET /api/v1/openai-assistants and /api/v1/openai-assistants/:id), uploadFilesToAssistant (POST /api/v1/openai-assistants-file/upload/), deleteAssistant (DELETE /api/v1/assistants/:id, reachable by first importing a poisoned assistant row via POST /api/v1/export-import/import), and the shared helper used by getVoices (GET /api/v1/text-to-speech/voices). An authenticated user of one workspace can supply a credential UUID belonging to another workspace, causing the server to decrypt and use that workspace's OpenAI or ElevenLabs API key on the attacker's behalf. No patched version was available at the time of publication.