{"id":"GHSA-w5r9-j49j-2m55","kind":"vulnerability","aliases":["GHSA-w5r9-j49j-2m55"],"related":[],"title":"Duplicate Advisory : Flowise has arbitrary file access due to missing chat flow id validation","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-q67q-549q-p849. This link is maintained to preserve external references.\n\n### Original Description\n\nFlowise before 3.0.6 (affected versions 2.2.8 and earlier) contains an arbitrary file access vulnerability due to missing validation that the chatflowId and chatId parameters are UUIDs or numbers in file handling operations. By supplying a path-traversal value (e.g., '../../../../../tmp') as the chatflow id, an unauthenticated attacker can use the /api/v1/chatflows endpoint (via addBase64FilesToStorage) to write arbitrary files, and the /api/v1/get-upload-file and /api/v1/openai-assistants-file/download endpoints (via streamStorageFile) to read arbitrary files. Arbitrary file write may lead to remote code execution.","summary":"Flowise accepts path-traversal values as chatflow and chat IDs, so file handling reads and writes outside its storage folder. An unauthenticated attacker can read arbitrary files and write files, which may lead to remote code execution.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"flowise","fixed":["3.0.6"],"affected":">= 2.2.8, < 3.0.6","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["ai-agents","ai-tooling","cwe-73","flowise","npm","self-hosted"],"not_affected_if":["no-internet-exposure","version-3.0.6-or-later"],"how_to_check":"- Check the installed version with `npm ls flowise` and see whether it is `2.2.8` or earlier\n- Check whether the Flowise server is reachable from the internet at its `/api/v1/chatflows` and `/api/v1/get-upload-file` endpoints\n- This advisory is withdrawn as a duplicate; the original is GHSA-q67q-549q-p849","fix":"- flowise: upgrade to `3.0.6` or later","status":"withdrawn","published_at":"2026-06-26T00:32:05+00:00","first_seen_at":"2026-11-03T17:36:46+00:00","triaged_at":"2026-11-03T17:38:31+00:00","updated_at":"2026-11-03T17:38:31+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-03T17:38:31Z","model":"claude-haiku-5-5","output":{"fix":"- flowise: upgrade to `3.0.6` or later","reach":"internet","title":"Flowise: missing chatflow ID checks allow arbitrary file read and write","impact":"high","summary":"Flowise accepts path-traversal values as chatflow and chat IDs, so file handling reads and writes outside its storage folder. An unauthenticated attacker can read arbitrary files and write files, which may lead to remote code execution.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["flowise","self-hosted","npm","ai-agents"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"attacker reads secrets and writes files, possibly running code","analyst_note":"Advisory is withdrawn as duplicate; confirm the active record is GHSA-q67q-549q-p849 and that it carries the same fix range.","how_to_check":"- Check the installed version with `npm ls flowise` and see whether it is `2.2.8` or earlier\n- Check whether the Flowise server is reachable from the internet at its `/api/v1/chatflows` and `/api/v1/get-upload-file` endpoints\n- This advisory is withdrawn as a duplicate; the original is GHSA-q67q-549q-p849","plain_action":"","needs_analyst":true,"not_affected_if":["version-3.0.6-or-later","no-internet-exposure"],"who_is_affected":"Flowise servers at version `2.2.8` or earlier are exposed, since the flaw is in the unauthenticated file endpoints that take a chatflow ID. Teams running Flowise only on a private network with no inbound access from outside have lower exposure. Teams on `3.0.6` or later are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000757,"input_tokens":4381,"output_tokens":637,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-73':33B '/../../../../tmp':145C '/api/v1/chatflows':156C '/api/v1/get-upload-file':166C '/api/v1/openai-assistants-file/download':168C '2.2.8':110C '2m55':19A,24A '3.0.6':107C '549q':93C 'accept':40B 'access':7A,117C 'addbase64filestostorage':159C 'advisori':2A,78C,80C 'affect':108C 'agent':28B 'ai':27B,30B 'ai-ag':26B 'ai-tool':29B 'arbitrari':5A,65B,115C,162C,174C,176C 'attack':62B,152C 'chat':11A,48B 'chatflow':46B,148C 'chatflowid':125C 'chatid':127C 'code':75B,183C 'contain':113C 'cwe':32B 'descript':104C 'due':8A,119C 'duplic':1A,77C,88C 'e.g':144C 'earlier':112C 'endpoint':157C,169C 'execut':76B,184C 'extern':101C 'file':6A,51B,66B,69B,116C,134C,163C,175C,177C 'flow':12A 'flowis':3A,34B,39B,105C 'flowise':25A 'folder':59B 'ghsa':16A,21A,91C 'ghsa-q67q-549q-p849':90C 'ghsa-w5r9-j49j-2m55':15A,20A 'handl':52B,135C 'host':38B 'id':13A,49B,149C 'j49j':18A,23A 'lead':72B,180C 'link':96C 'maintain':98C 'may':71B,179C 'miss':10A,121C 'npm':35B 'number':132C 'oper':136C 'origin':103C 'outsid':56B 'p849':94C 'paramet':128C 'path':42B,141C 'path-travers':41B,140C 'preserv':100C 'q67q':92C 'read':53B,64B,173C 'refer':102C 'remot':74B,182C 'self':37B 'self-host':36B 'storag':58B 'streamstoragefil':171C 'suppli':138C 'tool':31B 'travers':43B,142C 'unauthent':61B,151C 'use':154C 'uuid':130C 'valid':14A,122C 'valu':44B,143C 'version':109C 'via':158C,170C 'vulner':118C 'w5r9':17A,22A 'withdrawn':83C 'write':55B,68B,161C,178C","nicknames":[],"mitigations":[],"who_affected":"Flowise servers at version `2.2.8` or earlier are exposed, since the flaw is in the unauthenticated file endpoints that take a chatflow ID. Teams running Flowise only on a private network with no inbound access from outside have lower exposure. Teams on `3.0.6` or later are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["flowise"],"ptokens":["flowise"],"labels":["aiagents","aitooling","critical","cwe73","flowise","npm","selfhosted"],"campaign_type":null,"first_public_at":"2026-06-26T00:32:05+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-w5r9-j49j-2m55","url":"https://github.com/advisories/GHSA-w5r9-j49j-2m55","severity":"critical","published_at":"2026-06-26T00:32:05+00:00","modified_at":"2026-11-03T17:35:34+00:00","first_seen_at":"2026-11-03T17:36:46+00:00","fetched_at":"2026-11-03T17:36:46+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}