Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessQuery exposed readable collection via API
-
ExploitFilter on relationship to access-protected collection
-
ExecutionNested query bypasses access.read where constraints
-
ImpactInfer/disclose protected related-document data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a specific schema and deployment shape: the application must expose a queryable/readable collection that defines a relationship, has-many relationship, upload, or join field pointing to a second collection whose read access is restricted via access.read where constraints. The attacker leverages the 'contains' query operator against that related field so the nested lookup resolves protected related documents without inheriting the parent's access constraints. Limiting factors: (1) the vulnerable configuration (a readable collection related to an access-restricted collection) must exist - deployments without such relationships are unaffected; (2) the attacker must be able to query the readable collection, so the unauthenticated (PR:N) rating holds only if that collection is public; (3) on the evidence provided, the demonstrated code path is the MongoDB adapter; (4) impact is limited to disclosure of related-document information, not modification. There is no complete workaround per the vendor - upgrading to >= 3.90.0 or >= 4.0.0-canary.34 is required. |
| Impact | This is a medium-severity information-disclosure flaw (vendor CVSS 4.0 base 6.9; my independent CVSS 3.1 assessment is 5.3). The signals are internally consistent but modest: the CVSS vector indicates network reach (AV:N), low complexity (AC:L), no user interaction (UI:N), and only a limited confidentiality impact (VC:L / C:L) with no integrity or availability effect. The vendor set PR:N (unauthenticated), which is accurate ONLY when the exposed 'readable' collection is genuinely public - if the readable collection itself requires auth, real-world exploitation is authenticated, so treat PR:N as config-dependent rather than universal. No EPSS score, no SSVC decision data, and no CISA KEV entry were provided, and there is no public exploit identified at time of analysis; however, the fixing commit is public, which fully reveals the root cause (unchecked nested 'contains' relationship/join queries in the MongoDB query builder) and lowers the bar for exploit development. Conflict to note: the 'Authentication Bypass' tag overstates this - CWE-862 and the advisory describe an authorization/access-control bypass (access.read where constraints), not an authentication bypass. Net: a legitimate but non-emergency priority - patch affected deployments promptly, but this is not a widespread drive-by threat and leaks only related-document information, not full database contents. |
| Exploit ScenarioDerived | An attacker with the ability to query a public/readable Payload collection crafts a filter on a relationship (or join/has-many/upload) field pointing to a second collection that is protected by access.read where constraints, using the nested 'contains' query operator. Because the related-document lookup did not apply the parent's access constraints, the response reveals whether protected related documents match the attacker's filter, allowing the attacker to probe and infer the contents of records they should not be able to read. No public exploit code is identified at time of analysis, but the fixing commit publicly discloses the exact vulnerable query path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Payload CMS versions before 3.90.0 and canary versions before 4.0.0-canary.34 contain an authorization bypass in relationship queries that can expose protected document data. The vulnerability affects deployments where a readable collection has a relationship, upload, or join field pointing to a second collection whose read access is restricted via access.read where constraints; an unauthenticated attacker can use the 'contains' query operator to retrieve information about related documents that should be hidden. No public exploit identified at time of analysis. The vendor has released patches in 3.90.0 and 4.0.0-canary.34, and there is no complete workaround other than upgrading.
RemediationAI
Upgrade Payload CMS packages to version 3.90.0 or later for the v3 line, or to 4.0.0-canary.34 or later for the v4 canary line. The vendor states there is no complete workaround; the only full fix is upgrading. If an immediate upgrade is not possible, consider reducing exposure by restricting public read access to any collections that have relationship, upload, or join fields pointing to access-restricted collections, or by temporarily intercepting and blocking queries that use the 'contains' operator on those fields via custom middleware. These compensating controls may break intended functionality and are not guaranteed to fully mitigate the issue. See the advisory at https://github.com/payloadcms/payload/security/advisories/GHSA-7c34-32v3-j575 and the fix commit at https://github.com/payloadcms/payload/commit/94059cf4bc6170ce88453015c0c6551329ae3982.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Payload CMS is a headless content management system built on Node.js, commonly used with MongoDB. The flaw resides in the MongoDB adapter's query builder (buildSearchParams.ts) and is classified as CWE-862 Missing Authorization. When a query uses the 'contains' operator on a has-many relationship, upload, or join field, the code constructs a nested query against the related collection but fails to apply the access.read where constraints that protect that related collection. This allows an attacker to infer or retrieve information about protected documents by observing the parent collection's query results. The provided commit (94059cf4bc6170ce88453015c0c6551329ae3982) introduces helper functions buildHasManyRelationshipContainsSearchParam and buildJoinContainsSearchParam that resolve the nested query against the related documents themselves, ensuring that any injected access constraints are applied consistently. The fix is included in versions 3.90.0 and 4.0.0-canary.34.
Know when Payload gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network API query with low complexity and no UI; PR:N holds only when the readable collection is public; only limited related-document confidentiality is affected, so C:L and I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Payload is a free and open source headless content management system. In versions before 3.90.0 and canary versions before 4.0.0-canary.34, querying a readable collection with a relationship to another collection can expose information about related documents protected by access.read where constraints. This issue is fixed in versions 3.90.0 and 4.0.0-canary.34.
Blast Radius
ecosystem impact- 2 npm packages depend on payload (2 direct, 0 indirect)
Ecosystem-wide dependent count for version 4.0.0-canary.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
An arbitrary file upload vulnerability in the file upload module of PayloadCMS v0.15.0 allows attackers to execute arbit
Prototype pollution in Payload CMS's @payloadcms/plugin-import-export module lets an unauthenticated remote attacker sub
Field-level access control can be bypassed in Payload CMS's document duplicate operation, letting a caller with access t
Duplicate order processing in @payloadcms/plugin-ecommerce allows remote, unauthenticated attackers to have a single Str
Malformed multipart request bodies sent to Payload CMS versions 3.0.0 through 3.89.x and 4.0.0-canary.0 through 4.0.0-ca
API key disclosure in Payload CMS lets an authenticated user with ordinary read access to other users' authentication do
Authenticated users who can update an auth collection document in Payload CMS can change the password field on that docu
Unauthorized read access to stored form submissions and form email configuration in Payload CMS deployments running the
Payload CMS releases before 3.90.0 (and canary builds before 4.0.0-canary.34) expose an orderable reorder endpoint that
Payload CMS prior to 3.73.0 has a SQL injection vulnerability when querying structured data, enabling database compromis
SQL injection in Payload CMS 3.0.0 through before 3.88.0 (and 4.0.0-canary builds before 4.0.0-canary.27) allows remote
Payload CMS (npm package `payload`) versions 3.0.0 through 3.89.x and 4.0.0-canary builds before canary.34 hash account
EUVD-2026-93495
GHSA-7c34-32v3-j575
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB