CVE-2026-40352 json
FastGPT: NoSQL Injection in updatePasswordByOld Leads to Account Takeover
published 2026-04-17 6 mo ago modified 2026-10-26 13 d ago also EUVD-2026-23559
- cvss
- 8.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 32%
- public exploits
- 0
- none known
Summary
FastGPT is an AI Agent building platform. In versions prior to 4.14.9.5, the password change endpoint is vulnerable to NoSQL injection. An authenticated attacker can bypass the "old password" verification by injecting MongoDB query operators. This allows an attacker who has gained a low-privileged session to change the password of their account (or others if combined with ID manipulation) without knowing the current one, leading to full account takeover and persistence. This issue has been fixed in version 4.14.9.5.
Patch / fix
- fastgpt fastgpt 4.14.9.5
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 6 mo ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/labring/FastGPT/security/advisories/GHSA-422w-vrfj-72g6 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- labring FastGPT
Classification
- Weakness
-
- CWE-943 Improper Neutralization of Special Elements in Data Query Logic
References
-
github.com
/labring/FastGPT/commit/bd966d479fbe414d02679cf79f9eaaab3d100a2d
patch
-
github.com
/labring/FastGPT/security/advisories/GHSA-422w-vrfj-72g6
exploit, vendor-advisory
-
github.com
/labring/FastGPT/releases/tag/v4.14.9.5
product, release-notes
Sources
- CVE List CVE-2026-40352
- NVD CVE-2026-40352
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.