Parse Server MFA recovery codes not consumed after use
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
Summary
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.6.0-alpha.7 and 8.6.33, when multi-factor authentication (MFA) via TOTP is enabled for a user account, Parse Server generates two single-use recovery codes. These codes are intended as a fallback when the user cannot provide a TOTP token. However, recovery codes are not consumed after use, allowing the same recovery code to be used an unlimited number of times. This defeats the single-use design of recovery codes and weakens the security of MFA-protected accounts. An attacker who obtains a single recovery code can repeatedly authenticate as the affected user without the code ever being invalidated. This vulnerability is fixed in 9.6.0-alpha.7 and 8.6.33.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| parse-community | parse-server | >= 9.0.0 < 9.6.0-alpha.7; before 8.6.33 | 8.6.33 | Patch available | CNA |
| — | parse-server (npm) | 9.0.0-alpha.1 to before 9.6.0-alpha.7 | 9.6.0-alpha.7 | Patch available | GHSA-4hf6-3x24-c9m8 |
| — | parse-server (npm) | before 8.6.33 | 8.6.33 | Patch available | GHSA-4hf6-3x24-c9m8 |
- parse-server Vendorparse-community Affected >= 9.0.0 < 9.6.0-alpha.7; before 8.6.33 Fixed in 8.6.33 Patch available CNA
- parse-server (npm) Vendor— Affected 9.0.0-alpha.1 to before 9.6.0-alpha.7 Fixed in 9.6.0-alpha.7 Patch available GHSA-4hf6-3x24-c9m8
- parse-server (npm) Vendor— Affected before 8.6.33 Fixed in 8.6.33 Patch available GHSA-4hf6-3x24-c9m8
CPE configurations NVD · 7
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:parseplatform:parse-server:*:*:*:*:*:node.js:*:* | before 8.6.33; 9.0.0 to before 9.6.0 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha1:*:*:*:node.js:*:* | 9.6.0 alpha1 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha2:*:*:*:node.js:*:* | 9.6.0 alpha2 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha3:*:*:*:node.js:*:* | 9.6.0 alpha3 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha4:*:*:*:node.js:*:* | 9.6.0 alpha4 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha5:*:*:*:node.js:*:* | 9.6.0 alpha5 | Vulnerable | parse-community |
| cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha6:*:*:*:node.js:*:* | 9.6.0 alpha6 | Vulnerable | parse-community |
- cpe:2.3:a:parseplatform:parse-server:*:*:*:*:*:node.js:*:* Versions before 8.6.33; 9.0.0 to before 9.6.0 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha1:*:*:*:node.js:*:* Versions 9.6.0 alpha1 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha2:*:*:*:node.js:*:* Versions 9.6.0 alpha2 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha3:*:*:*:node.js:*:* Versions 9.6.0 alpha3 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha4:*:*:*:node.js:*:* Versions 9.6.0 alpha4 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha5:*:*:*:node.js:*:* Versions 9.6.0 alpha5 Vulnerable ·parse-community
- cpe:2.3:a:parseplatform:parse-server:9.6.0:alpha6:*:*:*:node.js:*:* Versions 9.6.0 alpha6 Vulnerable ·parse-community
Remediation
- Fix · CNA parse-server (parse-community) Fixed in 8.6.33
- Fix · GHSA-4hf6-3x24-c9m8 parse-server (npm) Fixed in 9.6.0-alpha.7 Advisory →
- Fix · GHSA-4hf6-3x24-c9m8 parse-server (npm) Fixed in 8.6.33 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-31875
- 2026-10-03 Alias added: GHSA-4hf6-3x24-c9m8
References
More parse-community Parse-server vulnerabilities
- TI-2022-08574 Command Injection in Parse server CVSS 3.1CRITICAL 10.0
- TI-2024-18136 Parse Server literalizeRegexPart SQL Injection CVSS 3.1CRITICAL 10.0
- TI-2022-18768 Parse Server vulnerable to Remote Code Execution via prototype pollution in MongoDB BSON parser CVSS 3.1CRITICAL 9.8
- TI-2024-31550 Parse Server's custom object ID allows to acquire role privileges CVSS 3.1HIGH 8.1
- TI-2023-18316 Parse Server vulnerable to remote code execution via MongoDB BSON parser through prototype pollution CVSS 3.1CRITICAL 9.8
- TI-2026-23790 Parse Server session token exfiltration via `redirectClassNameForKey` query parameter CVSS 4.0CRITICAL 9.9
Sources
- CVE-2026-31875 · CVE Program
- CVE-2026-31875 · NVD
- FIRST EPSS
- GHSA-4hf6-3x24-c9m8 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences