CVE-2026-25544

9.8 CRITICAL

📋 TL;DR

This is a critical SQL injection vulnerability in Payload CMS versions before 3.73.0 that allows unauthenticated attackers to extract sensitive data and achieve full account takeover. The vulnerability affects all systems running vulnerable Payload CMS instances where JSON or richText fields are queried. Attackers can steal emails, password reset tokens, and other sensitive information without password cracking.

💻 Affected Systems

Products:
  • Payload CMS
Versions: All versions prior to 3.73.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations where JSON or richText fields are queried. No special configuration required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of all user accounts, extraction of all sensitive data from the database, and potential server takeover if database permissions allow.

🟠

Likely Case

Extraction of user emails, password reset tokens, and authentication data leading to account takeover of administrators and users.

🟢

If Mitigated

Limited impact if proper input validation and WAF rules are in place, but SQL injection could still bypass some controls.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

SQL injection is well-understood with many automated tools available. The advisory confirms unauthenticated exploitation is possible.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.73.0

Vendor Advisory: https://github.com/payloadcms/payload/security/advisories/GHSA-xx6w-jxg9-2wh8

Restart Required: Yes

Instructions:

1. Backup your database and application files. 2. Update Payload CMS to version 3.73.0 or later using npm: 'npm update payload@^3.73.0'. 3. Restart your Payload CMS application. 4. Verify the update was successful.

🔧 Temporary Workarounds

Input Validation Middleware

all

Implement custom middleware to validate and sanitize all user input before processing JSON or richText field queries.

WAF Rule Implementation

all

Deploy web application firewall rules to detect and block SQL injection attempts targeting JSON or richText endpoints.

🧯 If You Can't Patch

  • Implement strict input validation and parameterized queries for all JSON and richText field operations.
  • Deploy a web application firewall with SQL injection detection rules and restrict access to vulnerable endpoints.

🔍 How to Verify

Check if Vulnerable:

Check your package.json or run 'npm list payload' to see if version is below 3.73.0.

Check Version:

npm list payload | grep payload

Verify Fix Applied:

After updating, verify version is 3.73.0 or higher with 'npm list payload' and test that JSON/richText field queries no longer accept unescaped SQL.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in application logs
  • Multiple failed login attempts after password reset token extraction
  • Unexpected database queries from JSON/richText endpoints

Network Indicators:

  • SQL syntax in HTTP POST/GET parameters to JSON endpoints
  • Unusual patterns of requests to /api/ endpoints with SQL keywords

SIEM Query:

source="application.logs" AND ("SELECT" OR "UNION" OR "INSERT" OR "UPDATE") AND ("json" OR "richText")

🔗 References

📤 Share & Export