CVE-2026-25544: Payload has an SQL Injection in JSON/RichText Queries on PostgreSQL/SQLite Adapters

Published Feb 5, 2026
·
Updated

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

2 affected componentsFixes available
npm/@payloadcms/drizzle<3.73.0
3.73.0
PayloadCMS Payload Node.js<3.73.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@payloadcms/drizzle to a version that resolves this vulnerability.

    Fixed in 3.73.0
  2. Upgrade

    Upgrade Payload CMS to a version that resolves this vulnerability.

    Fixed in v3.73.0
  3. 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

Feb 5, 2026
Advisory Published
via GitHub·08:51 PM
Data Sourced
via GitHub·08:51 PM
DescriptionSeverityWeaknessAffected Software
Feb 6, 2026
CVE Published
via MITRE·09:07 PM
Data Sourced
via MITRE·09:07 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
Affected Software
Sep 1, 2026
Exploit Published
via ExploitDB·12:00 AM
Known Exploited
05:15 PM

Frequently Asked Questions

1

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.

2

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.

3

What vulnerabilities does CVE-2026-25544 exploit?

CVE-2026-25544 exploits vulnerabilities related to SQL injection in JSON or richText field queries.

4

Who is affected by CVE-2026-25544?

Unauthenticated attackers can exploit CVE-2026-25544 to extract sensitive data from affected systems.

5

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.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203