CVE-2026-105856
Description
Payload is a free and open source headless content management system. Prior to 3.90.0 and 4.0.0-canary.34, an attacker with read and create or update access to a collection containing a json field or a blocks field with blocksAsJSON enabled can inject SQL through a crafted field path and operators. Collections without those fields are not affected, and richText fields are not affected. The SQLite packages are fixed in versions 3.90.0 and 4.0.0-canary.34, and the Postgres packages are fixed in version 3.73.0.
How to fix
- payloadcms payload3.90.0 or later
- @payloadcms/db-sqlite3.90.0, 4.0.0-canary.34 or later
- @payloadcms/db-d1-sqlite3.90.0, 4.0.0-canary.34 or later
- @payloadcms/db-postgres3.73.0 or later
- @payloadcms/db-vercel-postgres3.73.0 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| payloadcms payload | v < 3.90.0, 4.0.0 | 3.90.0 |
| @payloadcms/db-sqlitenpm | 3.0.0 ≤ v < 3.90.0, 4.0.0-canary.0 ≤ v < 4.0.0-canary.34 | 3.90.0, 4.0.0-canary.34 |
| @payloadcms/db-d1-sqlitenpm | 3.0.0 ≤ v < 3.90.0, 4.0.0-canary.0 ≤ v < 4.0.0-canary.34 | 3.90.0, 4.0.0-canary.34 |
| @payloadcms/db-postgresnpm | 3.0.0 ≤ v < 3.73.0 | 3.73.0 |
| @payloadcms/db-vercel-postgresnpm | 3.0.0 ≤ v < 3.73.0 | 3.73.0 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.