CVE-2026-63316: Payload CMS SQL injection in query operators

CVE-2026-63316 · Severity: info · Published 2026-10-13

Payload CMS is a headless content management system used to manage and deliver content. An authenticated user with read and create or update permissions can inject malicious SQL code through query operators, potentially exposing or modifying sensitive database content. The vulnerability affects specific database backends (SQLite, PostgreSQL) when JSON or blocks fields are present.

Vendors: Payload.

Quick answers

Is CVE-2026-63316 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-63316 being exploited in the wild.
How severe is CVE-2026-63316?
Informational severity, published 13 October 2026.
Which products and versions are affected?
Payload @Payloadcms/Db-D1-Sqlite 3.0.0 to 3.89.x, 4.0.0-canary.0 to 4.0.0-canary.33; Payload @Payloadcms/Db-Postgres 3.0.0 to 3.72.x; Payload @Payloadcms/Db-Sqlite 3.0.0 to 3.89.x, 4.0.0-canary.0 to 4.0.0-canary.33; Payload @Payloadcms/Db-Vercel-Postgres 3.0.0 to 3.72.x.
Is there a fix for CVE-2026-63316?
Yes: fixed in @payloadcms/db-sqlite 3.90.0, 4.0.0-canary.34; @payloadcms/db-d1-sqlite 3.90.0, 4.0.0-canary.34; @payloadcms/db-postgres 3.73.0; @payloadcms/db-vercel-postgres 3.73.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-63316 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-63316?
Check whether you run Payload @Payloadcms/Db-D1-Sqlite, Payload @Payloadcms/Db-Postgres, Payload @Payloadcms/Db-Sqlite or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: @payloadcms/db-sqlite 3.90.0, 4.0.0-canary.34; @payloadcms/db-d1-sqlite 3.90.0, 4.0.0-canary.34; @payloadcms/db-postgres 3.73.0; @payloadcms/db-vercel-postgres 3.73.0

Technical details

SQL injection in the "in" and "not_in" query operators due to improper neutralization of user input. The vulnerability affects @payloadcms/db-sqlite, @payloadcms/db-d1-sqlite, @payloadcms/db-postgres, and @payloadcms/db-vercel-postgres when processing JSON or blocksAsJSON fields. Attack requires authenticated access with read plus create or update privileges on a collection containing vulnerable field types; the fix sanitizes query input.

Affected products

  • Payload @payloadcms/db-sqlite 3.0.0 to 3.89.x, 4.0.0-canary.0 to 4.0.0-canary.33
  • Payload @payloadcms/db-d1-sqlite 3.0.0 to 3.89.x, 4.0.0-canary.0 to 4.0.0-canary.33
  • Payload @payloadcms/db-postgres 3.0.0 to 3.72.x
  • Payload @payloadcms/db-vercel-postgres 3.0.0 to 3.72.x

Timeline

  • 2026-09-18: disclosed: GitHub Security Advisory published
  • 2026-10-13: advisory: CVE-2026-63316 published; CERT Polska coordination

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.