GHSA-x39m-3393-3qp4
HIGHFlowise doesn't Prevent Bypass of Password Confirmation through Unverified Email Change (credentials)
Blast Radius
Weekly download volume for affected packages — a proxy for how broadly this vulnerability is deployed.
flowise-uinpmDescription
Summary
Unverified Email Change - Email as part of Credential / Unverified Account Recovery Channel Change
The application allows changing the account email address (used as a login identifier and/or password recovery address) without verifying the requester’s authority to make that change (no confirmation to the old email, no authentication step). Because email often functions as a credential or recovery channel, unverified email changes enable attackers to take over accounts by switching the account’s recovery/login address.
Details
Occurence - code: https://github.com/FlowiseAI/Flowise/blob/main/packages/ui/src/views/account/index.jsx#L211
Remote and physical scenarios can be considered.
PoC
Repro steps:
- As logged in user https://cloud.flowiseai.com/account scroll down to 'Profile' section
- Change email to the new email
- Notice Unverified Password Change (authenticated change without current password)
Later this email is needed as credentials to log in or reset password feature.
POC: Email changed, and notice "Profile updated" message.
Screenshot <img width="329" height="357" alt="secbug" src="https://github.com/user-attachments/assets/d3c77835-35bb-47dc-8cd2-83e4e266e5a4" />
Impact
Full account takeover (ATO) of affected accounts (loss of confidentiality and integrity of account data). User account recovery mechanisms (password reset flows tied to email) can be bypassed or abused if combined with this issue and the second one which I've reported (similar security issue with the password - part of credentials). (gain persistence)
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | flowise-ui | all versions | 3.0.10 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for flowise-ui. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.
Fix
Update flowise-ui to 3.0.10 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-x39m-3393-3qp4 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 pinpoints whether GHSA-x39m-3393-3qp4 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.
Tailored to GHSA-x39m-3393-3qp4. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-x39m-3393-3qp4 in your dependencies?
O3 detects GHSA-x39m-3393-3qp4 across npm dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.