CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-32242

CVE-2026-32242: Authentication Bypass via Race Condition in Parse Server OAuth2 Adapter

Alon Barad
Alon Barad
Software Engineer

Mar 13, 2026·6 min read·52 visits

Executive Summary (TL;DR)

A race condition in Parse Server's OAuth2 adapter allows attackers to bypass authentication and access unauthorized accounts by exploiting a shared singleton configuration instance during concurrent login requests.

Parse Server versions prior to 8.6.37 and 9.6.0-alpha.11 contain a critical race condition in the built-in OAuth2 authentication adapter. Concurrent authentication requests across different OAuth2 providers can overwrite shared configuration state, leading to authentication bypass and unauthorized account access.

Vulnerability Overview

Parse Server exposes a built-in OAuth2 authentication adapter to handle third-party logins via providers like Google, Apple, and LinkedIn. This adapter processes incoming authentication tokens by validating them against the respective provider's configuration endpoints. Deployments utilizing multiple OAuth2 providers rely on this component to multiplex authentication requests securely.

CVE-2026-32242 identifies a critical race condition (CWE-362) within this authentication adapter. The vulnerability stems from the improper reuse of a singleton adapter instance across concurrent authentication requests. When multiple requests target different OAuth2 providers simultaneously, the shared instance state is overwritten.

This state overwrite causes validation logic intended for one provider to execute using the configuration parameters of another. Consequently, an attacker can bypass authentication checks. The impact includes unauthorized access to user accounts and potential privilege escalation within the application context.

Root Cause Analysis

The core issue resides in the loadAuthAdapter function located in src/Adapters/Auth/index.js. This function is responsible for initializing and configuring the authentication adapter for a specific OAuth2 provider. During initialization, the code checks if the defaultAdapter is an instance of AuthAdapter.

If the check passes, the application reuses the existing defaultAdapter instance rather than instantiating a new object. The function then applies provider-specific configuration options, such as tokenIntrospectionEndpointUrl and appIds, to this shared instance using Object.assign().

Because JavaScript execution in Node.js handles asynchronous operations concurrently, the Object.assign() call mutates the shared singleton state while other asynchronous validation tasks are suspended in the event loop. If two authentication requests for different providers arrive closely together, the second request mutates the adapter state before the first request's asynchronous validation completes.

The first request resumes execution and utilizes the newly mutated state containing the second provider's configuration. This cross-contamination of configuration parameters fundamentally undermines the token validation process, allowing invalid tokens to pass validation under the wrong provider's rules.

Code Analysis and Patch

Reviewing the vulnerable code in src/Adapters/Auth/index.js reveals the direct assignment to the shared adapter reference. The implementation explicitly retains the defaultAdapter instance if it matches the AuthAdapter prototype.

function loadAuthAdapter(provider, authOptions) {
  // Vulnerable implementation reusing the singleton instance
  const adapter =
    defaultAdapter instanceof AuthAdapter ? defaultAdapter : Object.assign({}, defaultAdapter);
 
  if (authOptions[provider]) {
    // Mutates the shared instance state for all concurrent operations
    Object.assign(adapter, authOptions[provider]);
  }
  return { adapter };
}

The patch introduced in PR #10184 corrects this behavior by instantiating a fresh object for every provider call. By invoking the constructor on the defaultAdapter, the fix ensures memory isolation between concurrent requests.

function loadAuthAdapter(provider, authOptions) {
  // Patched implementation creates a new instance
  const adapter =
    defaultAdapter instanceof AuthAdapter ? new defaultAdapter.constructor() : Object.assign({}, defaultAdapter);
 
  if (authOptions[provider]) {
    // Mutates an isolated instance state safely
    Object.assign(adapter, authOptions[provider]);
  }
  return { adapter };
}

This architectural change removes the shared state condition entirely. Each authentication request now receives an isolated adapter instance, preventing concurrent requests from polluting the configuration space of unrelated OAuth2 providers.

Exploitation Methodology

Exploitation of CVE-2026-32242 requires precise timing and a target deployment configured with multiple OAuth2 providers. An attacker initiates two concurrent authentication requests targeting different providers, such as Provider A and Provider B.

The attacker provides an invalid or carefully crafted token for Provider A, while simultaneously sending a request to Provider B. The application begins processing Provider A's request, suspending execution to perform external token validation or database lookups.

During this suspension, the application processes Provider B's request, executing the loadAuthAdapter function. This execution overwrites the singleton's configuration with Provider B's parameters, including permissive application IDs or different user identification fields.

When Provider A's request resumes, it continues validation using Provider B's configuration. If the attacker crafts the initial token to align with the substituted validation parameters, the token passes the checks. This logic confusion grants the attacker authenticated access to the system without possessing valid credentials for the targeted user account.

Impact Assessment

The vulnerability carries a CVSS 4.0 score of 9.1, reflecting its critical nature and high impact on confidentiality and integrity. Successful exploitation allows an unauthenticated remote attacker to gain unauthorized access to user accounts.

Once authenticated, the attacker assumes the privileges of the compromised user. Depending on the targeted account, this grants the ability to read sensitive data, modify database records, or execute further privilege escalation attacks within the Parse Server environment.

The attack complexity is rated as high due to the strict timing requirements necessary to trigger the race condition reliably. However, in high-traffic environments or through automated exploitation tools, an attacker can issue a large volume of concurrent requests to increase the probability of a successful state overwrite.

The scope remains unchanged as the vulnerability affects only the Parse Server instance itself. The lack of required user interaction and the absence of prior authentication prerequisites further elevate the severity of this authentication bypass flaw.

Remediation and Mitigation

The primary remediation strategy is updating Parse Server to a patched version. Administrators must upgrade deployments to version 8.6.37 or 9.6.0-alpha.11, which contain the architectural fix isolating adapter instances.

For environments where immediate patching is unfeasible, administrators should review their OAuth2 provider configurations. Disabling unused or non-essential OAuth2 providers reduces the attack surface, as the vulnerability requires multiple active providers to trigger the state confusion.

Defenders can implement monitoring to detect potential exploitation attempts. Analyzing authentication logs for concurrent login requests originating from the same source IP but targeting different providers indicates anomalous behavior.

Additionally, monitoring for elevated rates of OAuth2 validation failures or discrepancies between the requested provider and the validated token parameters aids in identifying ongoing attacks. Implementing strict rate limiting on authentication endpoints increases the difficulty of executing the required concurrent requests.

Official Patches

parse-communityRelease 8.6.37
parse-communityRelease 9.6.0-alpha.11

Technical Appendix

CVSS Score
9.1/ 10
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Affected Systems

Parse Server

Affected Versions Detail

Product
Affected Versions
Fixed Version
Parse Server
parse-community
< 8.6.378.6.37
Parse Server
parse-community
>= 9.0.0, < 9.6.0-alpha.119.6.0-alpha.11
AttributeDetail
Vulnerability TypeRace Condition (CWE-362)
CVSS Score9.1 (Critical)
Attack VectorNetwork (AV:N)
Attack ComplexityHigh (AC:H)
Privileges RequiredNone (PR:N)
User InteractionNone (UI:N)
Exploit StatusUnpublished

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-362
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Concurrent Execution using Shared Resource with Improper Synchronization

Vulnerability Timeline

Vulnerability fixed and releases issued via PR #10184
2026-03-11
CVE-2026-32242 and GitHub Advisory published
2026-03-12

References & Sources

  • [1]GitHub Advisory GHSA-2cjm-2gwv-m892
  • [2]Fix Pull Request #10184
  • [3]CVE.org Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 9 hours ago•GHSA-7PPR-R889-MCF2
7.5

GHSA-7PPR-R889-MCF2: Unbounded WebSocket Message Aggregation in http4s-blaze-server leads to Denial of Service

An uncontrolled resource consumption vulnerability exists in the Scala-based http4s-blaze-server package of the http4s/blaze library. The vulnerability allows remote, unauthenticated attackers to cause an Out of Memory Error (OOM) and JVM crash by streaming a continuous sequence of small or empty WebSocket continuation frames with the FIN bit set to 0. This bypasses typical payload size checks because of the JVM's per-object allocation overhead, leading to rapid heap exhaustion with minimal network bandwidth.

Alon Barad
Alon Barad
6 views•5 min read
•about 10 hours ago•GHSA-95CV-R8X4-VH75
7.6

GHSA-95cv-r8x4-vh75: Path Traversal Vulnerability in OpenList Batch Rename Handler

A critical path traversal vulnerability has been identified in the OpenList Go-based backend package. The vulnerability exists within the batch rename handler because the application does not validate the source filename parameter before constructing filesystems paths. This omission allows authenticated users to escape their designated directory and rename files in sibling paths.

Amit Schendel
Amit Schendel
7 views•7 min read
•about 11 hours ago•GHSA-P6PH-3JX2-3337
4.3

GHSA-P6PH-3JX2-3337: Horizontal Privilege Escalation and Metadata Information Disclosure via Bleve Search in OpenList

OpenList version 4.2.3 and prior is vulnerable to an authorization bypass and metadata leakage. When configured with the Bleve search engine backend, OpenList fails to perform separator-aware path matching when validating tenant containment. This allows authenticated users to access sibling directories sharing similar name prefixes. Furthermore, the search backend returns unfiltered global result counts, leaking existence verification data of unauthorized files via side-channel analysis.

Amit Schendel
Amit Schendel
7 views•5 min read
•about 12 hours ago•GHSA-86CX-WWF4-PHQ4
6.5

GHSA-86cx-wwf4-phq4: Path Prefix Confusion Authorization Bypass in OpenList

An authorization bypass vulnerability in OpenList version 4.2.3 and below allows authenticated users to read arbitrary files outside of their designated base directories due to an insecure path prefix check using Go's standard strings.HasPrefix function.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 13 hours ago•CVE-2026-16584
7.0

CVE-2026-16584: Security Policy Bypass in AWS API MCP Server via Startup Initialization Failure

A security policy bypass vulnerability exists in the AWS API MCP Server (awslabs-aws-api-mcp-server) from version 0.2.13 through 1.3.46. When the server fails to load the read-only operations index during startup (due to transient network failures, file permission issues, or other exceptions), it logs a warning but continues running in an insecure, degraded state. Under this condition, the security policy engine fails open, silently skipping all subsequent security checks and consent prompts for the lifetime of the process. This permits unauthorized mutating AWS CLI commands to execute via indirect prompt injection attacks.

Amit Schendel
Amit Schendel
7 views•7 min read
•about 14 hours ago•GHSA-6V4M-FW66-8R4X
6.5

GHSA-6V4M-FW66-8R4X: Path Disclosure and Shell Expansion Bypass in Shescape

An incomplete escaping vulnerability in the npm package 'shescape' allows unauthenticated users to trigger dynamic shell expansions, absolute path disclosure, and command block break-outs on Unix and Windows systems.

Alon Barad
Alon Barad
6 views•7 min read