Flowise: Public chatflow endpoints return unsanitized flowData including plaintext API keys, passwords, and credential IDs
Summary
The GET /api/v1/public-chatflows/:id endpoint returns the full chatflow object without sanitization for public chatflows. Docker validation revealed this is worse than initially assessed: the sanitizeFlowDataForPublicEndpoint function does NOT exist in the released v3.0.13 Docker image. Both public-chatflows AND public-chatbotConfig return completely raw flowData including credential IDs, plaintext API keys, and password-type fields.
Root Cause
// packages/server/src/controllers/chatflows/index.ts:218-220
const chatflow = await chatflowsService.getChatflowById(req.params.id)
if (!chatflow) return res.status(StatusCodes.NOT_FOUND).json(...)
if (chatflow.isPublic) return res.status(StatusCodes.OK).json(chatflow) // ← NO sanitization!
Docker Validation (v3.0.13)
Created public chatflow with credential IDs and passwords in flowData:
{
"flowData": "{\"nodes\":[{\"data\":{\"credential\":\"e92a39bf-...\",\"inputs\":{\"password\":\"sk-supersecretkey123\",\"apiKey\":\"should-not-leak\"}}}]}"
}
The sanitizeFlowDataForPublicEndpoint function only exists in unreleased HEAD, and even there, only public-chatbotConfig calls it — public-chatflows never does.
Impact
- Credential IDs leaked — enables OAuth2 token theft chain (Finding 1)
- Plaintext API keys and passwords leaked — direct third-party account compromise
- Node configurations leaked — reveals internal architecture and endpoint URLs
- Both
public-chatflowsandpublic-chatbotConfigare affected in the released version
Suggested Fix
Apply sanitization to both public endpoints:
const sanitized = sanitizeFlowDataForPublicEndpoint(chatflow)
return res.status(StatusCodes.OK).json(sanitized)
Ensure the sanitization function strips all credential, password, apiKey, and secretKey fields from flowData.
References
packages/server/src/controllers/chatflows/index.tslines 209-236packages/server/src/utils/sanitizeFlowData.tslines 11-34 (exists only in unreleased HEAD)
Credits
- Shinobi Security - https://github.com/shinobisecurity
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| npm-Paket | flowise | < 3.1.0 | 3.1.0 |
Verweise
- CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N- Schwäche (CWE)
CWE-200- Plattform
- npm
- Paket
flowise- Veröffentlicht
- 17.04.2026
- Aktualisiert
- 11.10.2026 10:22
Quellen und Lizenzen
OSV / GitHub Advisory Database - GHSA-w47f-j8rh-wx87 - CC BY 4.0
Schwachstellenhistorie: flowise
Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
- Einträge insgesamt
- 114
- Erste → letzte
- 04.2024 10.2026
- Ohne Fix
- 16
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Kritisch 28
- Hoch 62
- Mittel 24
Veröffentlichungen pro Jahr
- 2024: 11
- 2025: 22
- 2026: 81
-
Flowise: Public chatflow endpoints return unsanitized flowData including plaintext API keys, passwords, and credential IDs dieser Eintrag
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.