Safeguard
Vulnerability Analysis•

CVE-2026-105852: High Relationship Query Data Leak in Payload

Payload CMS before 3.90.0 can expose protected related documents through relationship queries. No full workaround exists, so upgrade to 3.90.0.

Safeguard Security Team
4 min read

CVE-2026-105852 is a High severity authorization flaw in Payload, the headless CMS. Before 3.90.0, querying a readable collection with a relationship to another collection can expose information about related documents that access.read where constraints protect. Upgrade to 3.90.0, or 4.0.0-canary.34 on canary.

What's affected

  • Package: payload (npm).
  • Affected: before 3.90.0, and canary versions before 4.0.0-canary.34.
  • Fixed: 3.90.0 and 4.0.0-canary.34.
  • Condition: a readable collection has a relationship to a collection protected by access.read where constraints.
  • Workarounds: the advisory says there is no complete workaround, so upgrade.

The record scores this 7.5 (CVSS 3.1 vector) and calls it High. The project's GitHub advisory gives a score of 6.9 and a rating of Moderate under CVSS v4. Both are listed here because different scoring systems rate the same flaw differently. Judge urgency by whether the described configuration matches yours.

How to check if you're exposed

Payload is an npm package, so read the installed version in each project and environment.

npm ls payload
pnpm why payload
grep -n "payload" package.json

Check every deployment target too: production, staging, preview builds and any container image built from an older commit. Then look at the packages next to Payload, because this release series also touches plugins and database adapters:

npm ls @payloadcms/plugin-ecommerce @payloadcms/plugin-multi-tenant
npm ls @payloadcms/db-postgres @payloadcms/db-sqlite @payloadcms/db-vercel-postgres @payloadcms/db-d1-sqlite

Then map your relationships to protected data.

grep -rn "type: 'relationship'" src/
grep -rn "access:" src/collections/

For each readable collection, list its relationship fields and ask whether the target collection uses a read rule that returns a where constraint, such as tenant or owner filters. That is the pattern the advisory names.

Safeguard's free in-browser dependency scan at gold.safeguard.sh/scan reads a manifest or lockfile and shows which packages carry known CVEs, including this one. Nothing is installed and nothing leaves your browser session beyond the scan itself.

What to do now

  1. Upgrade all Payload packages together to 3.90.0 or later on the 3.x line, or to 4.0.0-canary.34 or later on the canary line, and keep versions in step across packages.
  2. List collections with relationship fields that point to documents protected by where style read rules, and rank them by data sensitivity.
  3. Review API logs for unusual filter queries against those collections, such as many probing requests from one account.
  4. Consider limiting query access on public collections until the upgrade is done, as a general precaution.
  5. Read the v3.90.0 release notes for behavior and API changes that may need code updates, and run your test suite before deploying.
  6. Redeploy every environment, including preview and staging, and rebuild container images.
  7. Re-scan your lockfile after the change to confirm no older copy of the package remains.

Why it matters

The record lists CWE-862, missing authorization. A relationship field lets you filter and sort across collections. The advisory says the query path could reveal information about related documents that the caller's own read rules would hide, because the filtering did not apply the target collection's rules.

This kind of leak is hard to see. No document is returned that should not be. Instead, the shape of the result gives something away, such as whether a related record exists or matches a condition. The advisory's score reflects a limited confidentiality impact, which is why it rates Moderate while the record's version of the score is higher.

The record does not list this CVE as exploited in the wild. Multi tenant and role based setups lean on where constraints heavily, so they are where this matters most. Payload's release notes for v3.90.0 describe a set of critical security fixes and recommend upgrading even if none of the listed items affect you. They also say exploit details and severity are intentionally left out of the notes, so read each advisory for the conditions.

Quick check

Is there a workaround?

The advisory says there is no complete workaround and tells you to upgrade.

Does this return protected documents directly?

The advisory says it can expose information about the related documents. It does not describe returning them in full.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.