CVE-2026-34574: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-34574 is a session field immutability bypass vulnerability in Parse Server, an open-source Node.js backend platform. An authenticated user can bypass the immutability guard on protected session fields (expiresAt, createdWith) by sending a null value in a PUT request to the session update endpoint, effectively nullifying session expiry and making sessions valid indefinitely. The vulnerability affects all Parse Server versions prior to 8.6.69 (8.x branch) and versions 9.0.0 through 9.7.0-alpha.13 (9.x branch). It was disclosed on March 31, 2026, with patches released on March 29, 2026. The CVSS v3.1 base score is 5.4 (Medium) and the CVSS v4.0 base score is 5.3 (Medium) (GitHub Advisory, Feedly).

Technical details

The root cause is an incorrect comparison (CWE-697) in RestWrite.prototype.handleSession within src/RestWrite.js. The original guard used truthiness checks (e.g., if (this.data.expiresAt && ...)) to block modification of immutable session fields, which evaluates to false when the value is null — a falsy value in JavaScript — allowing the null to pass through undetected. The fix replaced these with key-presence checks ('expiresAt' in this.data) that reject any value for protected fields regardless of truthiness. Exploitation requires only an authenticated session (low privileges) and a crafted HTTP PUT request to /sessions/:objectId with a JSON body containing {"expiresAt": null} or {"createdWith": null} (GitHub Advisory, Fix PR #10347).

Impact

Successful exploitation allows an authenticated attacker to nullify the expiresAt field of their own session, causing it to remain valid indefinitely and bypassing any configured session length or expiry policies. This results in low confidentiality and integrity impacts — the attacker maintains persistent unauthorized access to their account without re-authentication, even after the intended session lifetime has elapsed. There is no availability impact, and the vulnerability does not directly enable lateral movement or privilege escalation beyond persistent session persistence (GitHub Advisory, Feedly).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time (Feedly). The EPSS score is approximately 0.045% (0.000450), indicating a very low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported.

Exploitation steps

  1. Authenticate: Obtain a valid session token by logging into a Parse Server instance running a vulnerable version (< 8.6.69 or 9.0.0–9.7.0-alpha.13) using any standard user account.
  2. Retrieve session ID: Send a GET request to /1/sessions/me with the X-Parse-Session-Token header to retrieve the current session's objectId and confirm the current expiresAt value.
  3. Send malicious PUT request: Issue a PUT request to /1/sessions/:objectId with the session token in the header and a JSON body of {"expiresAt": null}. Because the original guard used a truthiness check, null bypasses the immutability protection.
  4. Verify bypass: Confirm the session's expiresAt field has been nullified by re-querying /1/sessions/me. The session will now remain valid indefinitely, bypassing configured session length policies.
  5. Maintain persistent access: Use the now-non-expiring session token for continued access to the application without re-authentication, even after the original expiry time has passed (GitHub Advisory, Fix Commit).

Indicators of compromise

  • Network: Unusual HTTP PUT requests to /1/sessions/<objectId> endpoints containing a JSON body with null values for expiresAt, createdWith, installationId, or sessionToken fields.
  • Logs: Parse Server access logs showing PUT requests to /sessions/ endpoints from authenticated users with Content-Type: application/json and null-valued protected fields; absence of expected session expiry errors for such requests on unpatched versions.
  • Application State: Sessions in the Parse Server _Session collection with a null or missing expiresAt field that were not created by a master/maintenance key; sessions that remain active well beyond the configured session length policy.

Mitigation and workarounds

Upgrade Parse Server to version 8.6.69 (8.x LTS branch) or 9.7.0-alpha.14 / 9.7.0 (9.x branch) or later, which replace the falsy-value guard with key-presence checks in RestWrite.js (Fix PR #10347, Fix PR #10348). If immediate patching is not possible, implement a beforeSave Cloud Code trigger on the _Session class to reject PUT requests containing null values for expiresAt and createdWith. Additionally, audit existing sessions in the _Session collection for records with null expiresAt values and revoke any suspicious sessions (GitHub Advisory).

Additional resources


Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-w2vw-w76x-qr89HIGH8.5
  • JavaScript logoJavaScript
  • nx
NoYesOct 05, 2026
CVE-2026-104852HIGH8.2
  • JavaScript logoJavaScript
  • @graphql-tools/utils
NoYesOct 05, 2026
GHSA-g7fw-3gjp-g5hfMEDIUM6.5
  • JavaScript logoJavaScript
  • @openclaw/matrix
NoYesOct 05, 2026
GHSA-r4xh-jqrq-34v2MEDIUM5.3
  • JavaScript logoJavaScript
  • smol-toml
NoYesOct 05, 2026
GHSA-6688-9rhm-gjv2LOWN/A
  • JavaScript logoJavaScript
  • dompurify
NoYesOct 05, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management