CVE-2026-25544: Payload has an SQL Injection in JSON/RichText Queries on PostgreSQL/SQLite Adapters
Impact
When querying JSON or richText fields, user input was directly embedded into SQL without escaping, enabling blind SQL Injection attacks. An unauthenticated attacker could extract sensitive data (emails, password reset tokens) and achieve full account takeover without password cracking.
Users are affected if ALL of these are true:
1. Payload version < v3.73.0 2. Using a Drizzle-based database adapter (@payloadcms/drizzle as dependency): - @payloadcms/db-postgres - @payloadcms/db-vercel-postgres - @payloadcms/db-sqlite - @payloadcms/db-d1-sqlite 3. At least one accessible collection that has a type: 'json' or type: 'richText' field where access.read returns anything other than false (true or Where constraint)
Users are NOT affected if:
- Using @payloadcms/db-mongodb - No JSON or richText fields exist in any collection - All JSON/richText fields have access: { read: () => false }
Patches
Upgrade to Payload v3.73.0 or later.
Workarounds
If a project cannot upgrade immediately, add access: { read: () => false } to all JSON and richText fields as a temporary mitigation.
Other sources
Payload is a free and open source headless content management system. Prior to 3.73.0, when querying JSON or richText fields, user input was directly embedded into SQL without escaping, enabling blind SQL injection attacks. An unauthenticated attacker could extract sensitive data (emails, password reset tokens) and achieve full account takeover without password cracking. This vulnerability is fixed in 3.73.0.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@payloadcms/drizzleto a version that resolves this vulnerability.Fixed in 3.73.0 - Upgrade
Upgrade
Payload CMSto a version that resolves this vulnerability.Fixed in v3.73.0 - Configuration
If you cannot upgrade immediately, add/modify `access: { read: () => false }` on all JSON and richText fields to prevent unauthenticated data extraction via blind SQL injection.
Payload CMS collections (JSON and richText fields) access.read = () => false
Event History
Frequently Asked Questions
What is the severity of CVE-2026-25544?
CVE-2026-25544 has a high severity rating due to its potential for blind SQL Injection attacks.
How do I fix CVE-2026-25544?
To fix CVE-2026-25544, upgrade to version 3.73.0 or later of the @payloadcms/drizzle package.
What vulnerabilities does CVE-2026-25544 exploit?
CVE-2026-25544 exploits vulnerabilities related to SQL injection in JSON or richText field queries.
Who is affected by CVE-2026-25544?
Unauthenticated attackers can exploit CVE-2026-25544 to extract sensitive data from affected systems.
What data can be compromised due to CVE-2026-25544?
CVE-2026-25544 can lead to the exposure of sensitive data such as emails and password reset tokens.