Description
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.
Published: 2026-07-01
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw arises because the serializer in API Platform Core fails to confirm that the class of a resource resolved from an IRI matches the expected type for a relation. An attacker who can submit write requests (POST/PUT/PATCH) to an API endpoint that exposes writable relations can provide a custom IRI that points to a different resource type. On legacy untyped properties the framework silently assigns the wrong‑typed object, happily corrupting data consistency and potentially feeding downstream logic that assumes the declared type. For modern typed properties Symfony’s PropertyAccessor blocks the substitution and throws an InvalidTypeException, but the silent corruption risk remains for legacy code. The vulnerability is a classic instance of type confusion (CWE‑843). The impacted behavior can lead to silently stored references that do not match the entity schema, which in turn may break application invariants, trigger errors later in the request cycle, or make downstream services operate on unexpected data. This issue does not provide an execution path for arbitrary code or direct denial of service; the primary threat is data integrity and the potential for subtle logic errors that could cascade into larger faults if unchecked.

Affected Systems

API Platform Core is the affected product. Versions prior to 4.1.30, 4.2.26 and 4.3.12 are vulnerable; all releases equal to or newer than those values contain the fix.

Risk and Exploitability

The CVSS score of 6.5 indicates moderate severity, while the EPSS score of less than 1 % shows a very low likelihood of exploitation at this time. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the ability to send a crafted IRI in a writable API request. If successful, the attacker can corrupt data integrity silently on systems that use legacy untyped relation properties, or observe a type mismatch exception with typed properties. The attack vector remains confined to the application layer and does not grant remote code execution or broader system compromise.

Generated by OpenCVE AI on July 21, 2026 at 13:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade API Platform Core to version 4.1.30, 4.2.26, 4.3.12 or later.
  • If upgrading is not possible, disable write permissions on API endpoints that expose writable relations.
  • Implement additional server‑side validation to verify that the type of the object resolved from an IRI matches the expected relation class before assignment.

Generated by OpenCVE AI on July 21, 2026 at 13:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 02 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 02 Jul 2026 04:15:00 +0000

Type Values Removed Values Added
First Time appeared Api-platform
Api-platform core
Vendors & Products Api-platform
Api-platform core

Wed, 01 Jul 2026 20:00:00 +0000

Type Values Removed Values Added
Description 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.
Title API Platform Core: Missing IRI type check enables resource type confusion
Weaknesses CWE-843
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N'}


Subscriptions

Api-platform Core
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-02T15:50:25.125Z

Reserved: 2026-06-11T21:46:52.380Z

Link: CVE-2026-54164

cve-icon Vulnrichment

Updated: 2026-07-02T15:49:54.792Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T13:30:07Z

Weaknesses
  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')