Disclosure summary
### Impact An attacker who has read plus create or update access to a collection can submit a request that includes a SQL injection targeting a specific field path shape and operators in Payload's SQLite and Postgres. #### You are affected if: - You use `@payloadcms/db-sqlite` or `@payloadcms/db-d1-sqlite`. - You use `@payloadcms/db-postgres` or `@payloadcms/db-vercel-postgres` `< 3.73.0`. - A readable collection has a `json` field, or a` blocks` field with `blocksAsJSON: true`. - The attacker has read plus create or update access on it. #### You are not affected if: - You have no `json or `blocksAsJSON` fields. `richText` is not affected. - You run a patched version. ### Patches The patched version sanitizes the query input to prevent injection. Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`.
Source-specific records & product guidance
Sources retain their own attribution and scoring. Follow the original record to confirm affected versions, fixed releases, and configuration conditions.
GitHub Reviewed Security Advisories · GHSA-pj7x-6wpf-pgvp
Open original source · Updated Oct 07, 2026
Payload: SQL injection in SQLite/Postgres
Source severity: HIGH / 8.6
| Ecosystem | Package | Affected range | First patched |
|---|---|---|---|
| npm | @payloadcms/db-sqlite | >= 3.0.0, < 3.90.0 | 3.90.0 |
| npm | @payloadcms/db-d1-sqlite | >= 3.0.0, < 3.90.0 | 3.90.0 |
| npm | @payloadcms/db-postgres | >= 3.0.0, < 3.73.0 | 3.73.0 |
| npm | @payloadcms/db-vercel-postgres | >= 3.0.0, < 3.73.0 | 3.73.0 |
| npm | @payloadcms/db-sqlite | >= 4.0.0-canary.0, < 4.0.0-canary.34 | 4.0.0-canary.34 |
| npm | @payloadcms/db-d1-sqlite | >= 4.0.0-canary.0, < 4.0.0-canary.34 | 4.0.0-canary.34 |
Original records & references
- NIST NVD record
- CVE Program record
- github.com — Reviewed advisory
PUBLISHED 2026-10-07T16:30:04-04:00
MODIFIED 2026-10-07T16:30:05-04:00
INGESTED 2026-10-08T12:30:39-04:00