Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as lower-privileged user
-
DeliveryHigher-privileged user request populates componentsCache
-
ExploitSend request to same JSON:API or HAL endpoint
-
ExecutionCache_key collision serves higher-privileged structure
-
ImpactObserve hidden attribute and relationship names
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: the target application must use #[ApiProperty(security: ...)] annotations to restrict property visibility on a per-user basis; the attacker must hold at least a lower-privileged authenticated account capable of issuing requests to the affected JSON:API or HAL endpoint; and a higher-privileged user's request must have populated the componentsCache for the same cache_key within the active cache window. Applications that do not configure per-user property security gates via #[ApiProperty(security: ...)] are entirely unaffected. Exploitation is further bounded by the fact that only property structure (attribute and relationship names, link shapes) is disclosed - not property values - limiting the sensitivity of the leak to the semantic meaning of the hidden field names themselves. The CVSS AC:H reflects the cache timing dependency, though in high-traffic deployments this window is frequently available. |
| Impact | The NVD-assigned CVSS 3.1 score of 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N) reflects network-reachable exploitation but acknowledges high attack complexity due to the cache timing dependency. No EPSS score is available in the provided intelligence, so exploitation probability cannot be quantified precisely. There is no CISA KEV listing and no published POC, indicating no confirmed or widespread active exploitation. The C:H rating merits scrutiny: the leak exposes property structure - attribute names, relationship keys, and link shapes - rather than actual property values, which may constitute a lower effective confidentiality impact in practice than C:H implies; however, if the hidden property names themselves carry sensitive semantic meaning (e.g., the existence of an admin_override field), the structural disclosure can be operationally significant. The AC:H constraint is genuine: exploitation requires a race-condition-like scenario where a higher-privileged user's request populates the cache and a lower-privileged user's request hits the same cache_key entry before expiry. In high-traffic multi-tenant deployments this window is routinely available, making the effective complexity lower than AC:H suggests in those environments. The PR:N assignment may overstate accessibility since the attacker must hold at least a lower-privileged account to issue the API request and observe the leaked structure. Overall this is a genuine medium-severity information disclosure that should be patched in any application using per-user property security gates, but it is not an emergency given the absence of known exploitation. |
| Exploit ScenarioDerived | A lower-privileged user sends a JSON:API or HAL GET request to an endpoint shortly after a higher-privileged user accessed the same resource, causing their request to be served from the componentsCache entry keyed on the shared cache_key. The lower-privileged user's response includes the full attribute, relationship, and link structure computed for the higher-privileged user's security context, revealing the names of properties that the #[ApiProperty(security: ...)] predicate would have hidden. No public exploit code exists; successful exploitation depends on cache timing alignment, which is a realistic condition in high-traffic multi-tenant APIs. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 01, 2026
Cross-user attribute structure leakage in API Platform Core's JSON:API and HAL serializers exposes the schema layout of security-gated properties to lower-privileged users through improper cache reuse. Versions from 2.6.0 up to 4.1.29, 4.2.26, and 4.3.12 are affected across the core, hal, and json-api packages. The component structure computed for a higher-privileged user's request can be served from cache to a subsequent lower-privileged user's request, bypassing the per-request evaluation of #[ApiProperty(security: ...)] predicates. No public exploit identified at time of analysis; vendor-released patches are available.
RemediationAI
Upgrade to API Platform Core 4.1.29, 4.2.26, or 4.3.12 - whichever matches the installed minor branch - as these releases introduce the missing isCacheKeySafe check in both the JSON:API and HAL item normalizers, preventing cross-user reuse of the componentsCache. Full patch details are in the vendor advisory at https://github.com/api-platform/core/security/advisories/GHSA-pjhx-3c3w-9v23. If an immediate upgrade is not feasible, a targeted compensating control is to customize the API Platform serialization context builder to incorporate a user-specific token (such as a hashed user ID or role fingerprint) into the cache_key context parameter, ensuring that cache entries are never shared across users with differing security contexts. The trade-off of this workaround is increased per-request serialization overhead and potential cache size growth proportional to the number of distinct user security profiles. Applications that do not use #[ApiProperty(security: ...)] for per-user property gating are not susceptible to this specific issue and need not apply the workaround as a priority.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 12 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
API Platform Core (cpe:2.3:a:api-platform:core) is a PHP framework for building hypermedia-driven REST and GraphQL APIs on top of Symfony. The root cause is CWE-524 (Use of Cache Containing Sensitive Information): both ApiPlatform\JsonApi\Serializer\ItemNormalizer and ApiPlatform\Hal\Serializer\ItemNormalizer maintain an internal componentsCache array keyed on $context['cache_key']. This key is set unconditionally before delegating to the parent normalizer, without first consulting the isCacheKeySafe gate that determines whether a given cache key is safe to reuse across security contexts. The #[ApiProperty(security: ...)] annotation is designed to be evaluated per-request to decide whether a property (attribute, relationship, or link) is exposed in the serialized output. Because the cache bypasses this per-request gate, the structural decisions made for one user's security context are frozen in cache and replayed for a subsequent user who may have a different permission set. The affected CPEs span cpe:2.3:a:api-platform:api-platform/hal and cpe:2.3:a:api-platform:api-platform/json-api as well as the core package.
Know when Core 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
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Attacker must hold a lower-privileged account (PR:L) to issue API requests; cache timing dependency justifies AC:H; no integrity or availability impact applies.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
API Platform Core is a system to create hypermedia-driven REST and GraphQL APIs. In versions from 2.6.0 prior to 4.1.29, 4.2.26, and 4.3.12, a missing isCacheKeySafe gate in the JSON:API and HAL item normalizers causes a cross-user attribute leak. #[ApiProperty(security: ...)] is evaluated per request to decide whether a property is exposed. The componentsCache arrays in ApiPlatform\JsonApi\Serializer\ItemNormalizer and ApiPlatform\Hal\Serializer\ItemNormalizer are keyed on $context['cache_key'], which is set unconditionally before delegating to the parent normalizer. The component structure (attributes, relationships, links) computed for one request can therefore be reused for a subsequent request whose user has a different set of accessible properties. A user with lower privileges may end up seeing the structure of properties that the security predicate would otherwise have hidden for them. This issue has been fixed in versions 4.1.29, 4.2.26, and 4.3.12.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
A remote code execution vulnerability in MobileIron Core & Connector versions 10.3.0.3 and earlier, 10.4.0.0, 10.4.0.1,
Onlyoffice Document Server v6.0.0 and below and Core 6.1.0.26 and below were discovered to contain a heap overflow via t
Onlyoffice Document Server v6.0.0 and below and Core 6.1.0.26 and below were discovered to contain a stack overflow via
An issue was discovered in Form Tools through 3.0.20. Rated critical severity (CVSS 9.8), this vulnerability is remotely
Remote code execution in REDAXO CMS versions 5.18.2 through 5.21.0 is reachable by authenticated backend users with medi
Type confusion in API Platform Core's AbstractItemNormalizer allows authenticated API consumers to corrupt relational da
Excessive Data Query Operations in a Large Data Table in GitHub repository pimcore/demo prior to 10.3.0. Rated medium se
An issue was discovered in Form Tools through 3.0.20. Rated medium severity (CVSS 6.1), this vulnerability is remotely e
Unauthenticated attackers who know a target's email address can take over Kiteworks Core accounts that use locally store
Root-level code execution on OPNsense firewalls running versions prior to 26.1.11 is achievable by an authenticated oper
An authentication bypass vulnerability in MobileIron Core & Connector versions 10.3.0.3 and earlier, 10.4.0.0, 10.4.0.1,
An issue was discovered in Form Tools through 3.0.20. Rated medium severity (CVSS 5.4), this vulnerability is remotely e
EUVD-2026-41129
GHSA-pjhx-3c3w-9v23
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB