NewApp Monitoring is liveSign up free
AgentbeamBeta
Open-source package vulnerability · npm

CVE-2026-105845: Payload: SQL Injection in SQLite and Postgres

criticalCVSS 3.1 9.8GHSA-v49j-62m6-pgrr

Payload, the Next.js-based headless CMS, has a critical SQL injection in its SQLite and Postgres database adapters. A remote request with no login can exploit it when untrusted users can run dynamic filters or joins against readable collections. Upgrade the payload package to 3.88.0, or 4.0.0-canary.27 on the 4.x canary line. MongoDB deployments are not affected.

Published Oct 6, 2026 · Analysis Oct 25, 2026

What an attacker can do

The advisory says a user can submit a request that exploits SQL injection in Payload. It does not name the vulnerable function or the exact parameter. The exposure is tied to dynamic query filters and join parameters on collections that the requester can read.

The attack needs only network access to the API and a collection that untrusted users can read. This often includes public collections such as pages or posts. The CVSS vector (network, low complexity, no privileges, no user interaction) fits this. The impact ratings are high for confidentiality, integrity and availability. With SQL injection against the application database, an attacker can read data beyond the collection they were allowed to query. That can include user records and credential hashes. They may also be able to change or delete data.

Deployments on @payloadcms/mongodb are not affected. Only the SQL adapters, SQLite and Postgres, are.

Who is affected

Affected: npm payload from 3.0.0 up to but not including 3.88.0, and from 4.0.0-canary.0 up to but not including 4.0.0-canary.27. You are exposed only if you use the SQLite or Postgres adapter and untrusted users can query readable collections with dynamic filters or joins.

Check your installed version:

npm ls payload

Check which database adapter you use in package.json or in the db option of payload.config.ts.

payload

Ecosystem
npm
Affected
>= 3.0.0, < 3.88.0
Fixed in
3.88.0
Check
npm ls payload

payload

Ecosystem
npm
Affected
>= 4.0.0-canary.0, < 4.0.0-canary.27
Fixed in
4.0.0-canary.27
Check
npm ls payload

How to fix it

Upgrade all Payload packages to 3.88.0 or later. On the 4.x canary line, use 4.0.0-canary.27 or later.

npm install [email protected]

Keep the other @payloadcms/* packages on the same version as payload.

If you cannot upgrade yet, the advisory gives two workarounds. Stop untrusted users from supplying dynamic query filters or join parameters. Limit read access to the affected collections.

How to tell if you were hit

The sources give no exploit signature. Review access logs for requests to the REST or GraphQL endpoints of readable collections with unusual where or join query parameters. Look for SQL fragments, quote characters or very long values. Check database logs for syntax errors and unexpected queries from the application role. Look for unexpected reads of tables such as users. If you see suspicious activity, rotate secrets and API keys stored in the database.

Original advisory

From the GitHub Advisory Database (CC BY 4.0).

Impact

A user can submit a request that exploits a SQL Injection vulnerability in Payload.

You are affected if:

  • You use an affected Payload version.
  • Untrusted users can query readable collections using dynamic filters or joins.

You are not affected if you use MongoDB (@payloadcms/mongodb).

Patches

Users should upgrade Payload packages to >= 3.88.0 or >= 4.0.0-canary.27.

Workarounds

Upgrading to a patched version is recommended. Until you can upgrade, restrict untrusted users from supplying dynamic query filters or join parameters and limit read access to affected collections.

Questions

Does the Payload SQL injection affect MongoDB deployments?

No. The advisory states that you are not affected if you use MongoDB through @payloadcms/mongodb. It affects the SQLite and Postgres adapters.

Which Payload version fixes this SQL injection?

Version 3.88.0 for the 3.x line, and 4.0.0-canary.27 for the 4.x canary line. All earlier 3.x versions from 3.0.0 are affected.

Does the attacker need to be logged in?

The CVSS vector says no privileges and no user interaction. In practice the attacker needs to reach a query endpoint for a collection they can read. Public read access is enough in that case.

References

How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology

More npm vulnerabilities

All npm entries