Skip to main content

API Platform Core CVE-2026-54164

| EUVDEUVD-2026-41126 MEDIUM
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-07-01 GitHub_M GHSA-9rjg-x2p2-h68h
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate with low-privilege API credentials
  2. Delivery
    Identify endpoint with writable untyped relation property
  3. Exploit
    Enumerate valid IRI for a resource of a different class
  4. Install
    Submit POST/PUT/PATCH with cross-type relation IRI
  5. C2
    AbstractItemNormalizer bypasses is_a guard via missing $operation context
  6. Execute
    Wrong-typed object silently assigned to relation property
  7. Impact
    Downstream logic operates on type-confused data

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to hold a low-privilege authenticated account capable of submitting POST, PUT, or PATCH requests to an API Platform endpoint that declares at least one writable relation property. The decisive condition for silent data corruption is that the targeted relation property must be declared using the legacy PHP @var docblock annotation without a PHP 8.x native type declaration - properties with strict PHP 8.x types are partially protected by Symfony's PropertyAccessor throwing InvalidTypeException. The attacker must also know or enumerate valid IRIs for resources of the wrong type (typically discoverable via the API's hypermedia controls or collection endpoints). Exploitation is limited to data integrity corruption; there is no confidentiality or direct code execution impact. Non-default configurations that restrict writable relation fields or that enforce strict PHP 8.x typing throughout the data model significantly reduce exploitability.

Impact

The NVD CVSS 3.1 score of 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N) is well-calibrated for this vulnerability: network-reachable, low complexity, requiring only low-privilege write access, with high integrity impact and no confidentiality or availability impact. This is a credible risk for any API Platform deployment that exposes writable relation endpoints to non-admin authenticated users. There is no CISA KEV listing and no public exploit code referenced at time of analysis, so active exploitation is unconfirmed. EPSS data was not provided in the available intelligence. The practical blast radius is gated by two factors: the attacker must hold write access to an affected endpoint, and the full silent-corruption path only applies to legacy untyped @var-style properties - PHP 8.x typed properties receive partial protection from Symfony's PropertyAccessor. Downstream impact is application-dependent: if business logic downstream trusts the declared relation type for authorization or processing decisions, a type-confused object could subvert those checks. This is a real priority for API Platform deployments using legacy PHP typing patterns, but lower urgency for modern PHP 8.x codebases.

Exploit ScenarioDerived

An authenticated API user with write access submits a PATCH request to an endpoint exposing a writable untyped relation property - for example, an order's customer field expecting a User IRI - and instead supplies the IRI of an unrelated Product resource. Because the is_a guard is bypassed, the normalizer silently assigns the Product object to the customer property, corrupting the order record. Downstream business logic that assumes customer is always a User (e.g., authorization checks, invoice generation) then operates on the wrong object type, potentially bypassing guards or triggering undefined behavior. No public POC is known, but the attack requires only standard HTTP write access and knowledge of valid resource IRIs.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 01, 2026

Type confusion in API Platform Core's AbstractItemNormalizer allows authenticated API consumers to corrupt relational data by supplying IRIs pointing to resources of the wrong type during write operations (POST/PUT/PATCH). The root cause is that getResourceFromIri() omits the $operation context when calling IriConverter::getResourceFromIri(), silently bypassing the is_a type guard at IriConverter.php:86. All 4.1.x, 4.2.x, and 4.3.x releases prior to the patched versions are affected; no public exploit or CISA KEV listing has been identified at time of analysis.

RemediationAI

Upgrade to API Platform Core 4.1.30, 4.2.26, or 4.3.12, which restore type validation in AbstractItemNormalizer by correctly passing the $operation context to IriConverter::getResourceFromIri(), re-enabling the is_a type guard. The vendor advisory is at https://github.com/api-platform/core/security/advisories/GHSA-9rjg-x2p2-h68h. If an immediate upgrade is not feasible, restrict write access (POST/PUT/PATCH) on endpoints with writable relation properties to fully trusted, higher-privilege roles only, reducing exposure to least-privileged users who could exploit the bypass. Applications already using PHP 8.x typed relation properties benefit from partial mitigation via Symfony's PropertyAccessor raising an InvalidTypeException on type mismatch - but this is not a complete fix, as it depends on per-property typing discipline across the codebase and does not prevent exploitation on any untyped properties. Auditing the data model for untyped @var-only relation properties and converting them to PHP 8.x typed declarations provides an additional compensating control with the trade-off of requiring a PHP version and code refactor.

Affected VersionsENISA

core < 4.1.30
core 4.3.0, < 4.3.12
core 4.2.0, < 4.2.26

Affected Packages

composer api-platform/core fix: 4.1.30, 4.2.26, 4.3.12
euvd core fix: 4.1.30, 4.2.26, 4.3.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 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 is a PHP framework for building Hydra/JSON-LD hypermedia REST and GraphQL APIs. The vulnerability resides in the serialization layer's AbstractItemNormalizer, which resolves incoming relation IRIs (resource URLs) into PHP objects during deserialization of write payloads. The normalizer calls getResourceFromIri() without forwarding the $operation parameter, which causes IriConverter to skip the is_a class-type guard at IriConverter.php:86 that would otherwise reject a resource whose class does not match the relation's declared type. CWE-843 (Access of Resource Using Incompatible Type) is the root cause class. The exploitability varies by PHP property style: legacy untyped @var-annotated relation properties silently accept the wrong-typed object, directly corrupting application invariants; modern PHP 8.x strictly typed properties trigger an InvalidTypeException from Symfony's PropertyAccessor, providing a partial natural mitigation. Affected CPE: cpe:2.3:a:api-platform:core:*:*:*:*:*:*:*:*.

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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 6.5 MEDIUM

Network-accessible API write endpoint requires low-privilege authenticated access (PR:L); integrity is high from silent type-confused data corruption; no confidentiality or availability impact applies.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Jul 01, 2026 - 21:02 EUVD

DescriptionCVE.org

API Platform Core is a system to create hypermedia-driven REST and GraphQL APIs. In versions prior to 4.1.30, 4.2.26 and 4.3.12, the serializer's AbstractItemNormalizer does not validate the resource type returned when resolving relation IRIs, allowing type confusion where a resource of an unintended type can be silently assigned to a relation property. An attacker who can submit write requests (POST/PUT/PATCH) to an API Platform endpoint with writable relations can supply a relation IRI pointing to a resource of a different type than the relation's declared class. Because getResourceFromIri() does not pass an $operation to IriConverter::getResourceFromIri(), the is_a type guard at IriConverter.php:86 is skipped. For untyped relation properties (legacy @var-only style), the wrong-typed object is silently assigned, corrupting invariants and potentially feeding downstream logic that assumes the declared type (CWE-843). For typed properties (modern PHP 8.x), the substitution is blocked by Symfony's PropertyAccessor with an InvalidTypeException. This issue has been fixed in versions 4.1.30, 4.2.26 and 4.3.12.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Medium
popular PHP API framework, widely used in enterprise PHP API projects
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Core

View all
CVE-2020-15505 CRITICAL POC
9.8 Jul 07

A remote code execution vulnerability in MobileIron Core & Connector versions 10.3.0.3 and earlier, 10.4.0.0, 10.4.0.1,

CVE-2022-29777 CRITICAL POC
9.8 Jun 02

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

CVE-2022-29776 CRITICAL POC
9.8 Jun 02

Onlyoffice Document Server v6.0.0 and below and Core 6.1.0.26 and below were discovered to contain a stack overflow via

CVE-2021-38145 CRITICAL POC
9.8 Aug 31

An issue was discovered in Form Tools through 3.0.20. Rated critical severity (CVSS 9.8), this vulnerability is remotely

CVE-2026-53599 HIGH POC
7.5 Jul 31

Remote code execution in REDAXO CMS versions 5.18.2 through 5.21.0 is reachable by authenticated backend users with medi

CVE-2023-5192 MEDIUM POC
6.5 Sep 27

Excessive Data Query Operations in a Large Data Table in GitHub repository pimcore/demo prior to 10.3.0. Rated medium se

CVE-2021-38143 MEDIUM POC
6.1 Aug 31

An issue was discovered in Form Tools through 3.0.20. Rated medium severity (CVSS 6.1), this vulnerability is remotely e

CVE-2026-102115 CRITICAL
9.8 Sep 30

Unauthenticated attackers who know a target's email address can take over Kiteworks Core accounts that use locally store

CVE-2026-57155 CRITICAL
9.9 Oct 15

Root-level code execution on OPNsense firewalls running versions prior to 26.1.11 is achievable by an authenticated oper

CVE-2020-15506 CRITICAL
9.8 Jul 07

An authentication bypass vulnerability in MobileIron Core & Connector versions 10.3.0.3 and earlier, 10.4.0.0, 10.4.0.1,

CVE-2021-38144 MEDIUM POC
5.4 Aug 31

An issue was discovered in Form Tools through 3.0.20. Rated medium severity (CVSS 5.4), this vulnerability is remotely e

CVE-2026-102147 CRITICAL
9.3 Sep 30

Stored cross-site scripting in Kiteworks Core (all versions prior to 9.5.0) enables unauthenticated attackers to persist

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy