GHSA-88pr-878c-24wf#flowise-components
npm · flowise-components
Résumé
Flowise: Authenticated arbitrary file write in the `S3 Directory` document loader via unsanitized S3 object keys
Détails de l’avis
Summary
Flowise on current main allows an authenticated user with
documentStores:preview-process permission to trigger the S3 Directory
document loader with attacker-controlled S3 object keys. The loader joins
each returned S3 key with a temporary directory using path.join(tempDir, key)
and writes the object bytes to disk without validating traversal sequences
such as ../. Cleanup later removes only the original temporary directory,
so files written outside that directory persist on the host filesystem.
This yields arbitrary file write with the privileges of the Flowise
server process.
A related variant exists in the S3File loader when
fileProcessingMethod = unstructured (same root cause; its cleanup behavior
turns it into a mixed arbitrary write/delete/DoS primitive).
Affected component
packages/components/nodes/documentloaders/S3Directory/S3Directory.ts- line 191:
filePath = path.join(tempDir, key)(unsanitized) - line 213: recursive
mkdirSynccreates parent path - line 216:
writeFileSyncwrites attacker-controlled bytes - line 289: cleanup only removes the original
tempDir, so escaped
files remain on disk
- line 191:
- Related (variant):
packages/components/nodes/documentloaders/S3File/S3File.ts
(lines 756, 780, 782, 817 — arbitrary write + recursive dirname delete)
Reachability
- Routes exposed:
packages/server/src/routes/documentstore/index.ts:41,45
(/api/v1/document-store/loader/preview,
/api/v1/document-store/loader/process/:loaderId) - Both require
documentStores:preview-process packages/server/src/services/documentstore/index.ts:588passesdata.loaderConfigstraight to the loader node with no path
sanitizationS3Directoryaccepts a customserverUrl, so the attacker does not need access to an existing trusted AWS bucket — they can point Flowise
at a local MinIO or any S3-compatible endpoint they control
Impact
Références
- https://github.com/advisories/GHSA-88pr-878c-24wf
- https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-88pr-878c-24wf
- https://github.com/FlowiseAI/Flowise/pull/6549
- https://github.com/FlowiseAI/Flowise/commit/571b5d6218b1c129588ac625c8f20e30905a67cb
- https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3
Vulnérabilités liées
Tout Supply chain →- MEDIUMCVE-2026-75602
OpenList: Authenticated arbitrary file write via Content-Disposition path traversal in SimpleHttp offline-download tool
- HIGHCVE-2026-82393
pnpm: A tarball dependency's manifest `name` escapes node_modules → arbitrary file write/overwrite on install
- HIGHCVE-2026-81726
NLTK: Model-artifact APIs bypass pathsec and touch files outside allowed roots
- HIGHGHSA-2rx9-3g3h-c2jv
pnpm: pacquet trust-lockfile install can create dependency symlinks outside the project
- HIGHCVE-2026-55527
praisonaiagents vulnerable to arbitrary file write via unsanitized `user_id` in `FileMemory.__init__()` — path traversal to any writable location
- HIGHCVE-2026-64679
Atlantis Workspace Handling has Path Traversal that Allows Out-of-Bounds Directory Deletion/Creation