CVE-2026-105856 Payload: SQL injection in SQLite/Postgres
Attackers with specific collection access can inject SQL via crafted field paths in Payload CMS, potentially reading or modifying data.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-105856?
CVE-2026-105856 is a high-severity SQL injection vulnerability in @payloadcms db-d1-sqlite, published on 6 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official 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.
Weakness: CWE-89
Which versions are affected by CVE-2026-105856?
It affects 1 product.
Products include Payloadcms Payload.
How do I fix CVE-2026-105856?
Upgrade to a fixed version.
Use parameterised queries everywhere and never build SQL by joining strings. Upgrade affected software first; a web application firewall only buys time. More about SQL injection.
Is CVE-2026-105856 being exploited?
There is no known exploitation of CVE-2026-105856 in the wild and no public exploit code.
Other vulnerabilities in @payloadcms db-d1-sqlite
- CVE-2026-105857 Payload: RCE in Payload Form Builder
- CVE-2026-105859 Payload: Unauthorized update to collection documents
- CVE-2026-25544 Payload has an SQL Injection in JSON/RichText Queries on PostgreSQL/SQLite Adapters
- CVE-2022-27952 Unrestricted Upload of File with Dangerous Type in Payload
- CVE-2026-105851 Payload: Field access control bypass on auth collections