Update dependency api-platform/core to v4 [SECURITY]#356
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/packagist-api-platform-core-vulnerability
branch
from
July 11, 2026 10:46
cd2a807 to
4c18add
Compare
renovate
Bot
force-pushed
the
renovate/packagist-api-platform-core-vulnerability
branch
from
July 11, 2026 12:59
4c18add to
b60a242
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^3.4.17→^4.0.0API Platform Core vulnerable to cross-user attribute leak in JSON:API and HAL item normalizers due to missing isCacheKeySafe gate
CVE-2026-49858 / GHSA-pjhx-3c3w-9v23
More information
Details
Impact
#[ApiProperty(security: ...)]is evaluated per request to decide whether a property is exposed. ThecomponentsCachearrays inApiPlatform\JsonApi\Serializer\ItemNormalizerandApiPlatform\Hal\Serializer\ItemNormalizerare 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 is the same vulnerability class as GHSA-428q-q3vv-3fq3 / CVE-2025-31485, which fixed only the GraphQL
ItemNormalizer. The JSON:API and HAL paths were not addressed at the time.Exploitation conditions
Exploitation requires all of the following to coincide:
#[ApiProperty(security: ...)]with a predicate whose result depends on the current user (or on per-request state).truepopulatescomponentsCachebefore a request from a user for whom the predicate evaluates tofalse, within the lifetime of the same PHP process.php-fpmworkers the cache only survives the duration of a single request, which makes the issue much harder to observe in practice.Patches
All three branches receive patched releases of
api-platform/core,api-platform/json-api, andapi-platform/hal.Workarounds
Override the JSON:API and HAL
ItemNormalizerservices to gate$context['cache_key']with a resource-class security check, or avoid#[ApiProperty(security: ...)]on resources served as JSON:API or HAL until the patch is applied. Pinning the deployment to classicphp-fpmworkers also limits exposure since the cache does not survive across requests.Credits
isCacheKeySafetoAbstractItemNormalizer.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
api-platform/core (api-platform/core)
v4.1.29Compare Source
Bug fixes
v4.1.28Compare Source
Bug fixes
v4.1.27Compare Source
Bug fixes
v4.1.26Compare Source
Bug fixes
v4.1.25Compare Source
Bug fixes
v4.1.24Compare Source
Bug fixes
Features
Laravel compatibility with
api-platform/http-cache:v4.1.23Compare Source
Bug fixes
v4.1.22Compare Source
Bug fixes
v4.1.21Compare Source
Bug fixes
Features
Link(#7342)v4.1.20Compare Source
Bug fixes
v4.1.19Compare Source
Bug fixes
partialquery parameter to OpenAPI whenpagination_client_enabledis true (#7295)v4.1.18Compare Source
Bug fixes
InputOption::VALUE_REQUIRED) (#7266)@idproperty whengenIdisfalse(#7162) (#7251)Experimental Features
v4.1.17Compare Source
Bug fixes
LinksHandlerto handle polymorphic relationships (#7231)v4.1.16Compare Source
Bug fixes
Notes:
Two providers are now available on parameters (query parameters, header and uri variables
Link):ReadLinkParameterProviderpreviously used for link security (renamed fromSymfony\Security\State\LinkedReadProvider)IriConverterParameterProviderthis allows you to read a resource from an IRI usefull for filters (eg?author=/authors/1)Previous tests on link security were left untouched we removed the experimental class
Symfony\Security\State\LinkAccessCheckerProvideras well as theLinkedReadProvideras they're not used anymore.v4.1.15Compare Source
There was an issue with the subtree split as we attempted to test lower dependencies on the subtree split, some components where wrongly tagged.
The proper fix is at: #7196
Bug fixes
exampleanddefaultwith nullable value not being shownFeatures
v4.1.14Compare Source
There was an issue with the subtree split as we attempted to test lower dependencies on the subtree split, some components where wrongly tagged.
The proper fix is at: #7196
Bug fixes
exampleanddefaultwith nullable value not being shownFeatures
v4.1.12Compare Source
Bug fixes
v4.1.11Compare Source
Bug fixes
v4.1.10Compare Source
Bug fixes
Features
v4.1.9Compare Source
Bug fixes
v4.1.8Compare Source
Bug fixes
v4.1.7Compare Source
Bug fixes
v4.1.6Compare Source
Bug fixes
v4.1.5Compare Source
Bug fixes
v4.1.4Compare Source
Bug fixes
v4.1.3Compare Source
Bug fixes
v4.1.2Compare Source
Bug fixes
v4.1.1Compare Source
Bug fixes
partialquery parameter to OpenAPI whenpagination_client_enabledis true (#7295)v4.1.0Compare Source
Bug fixes
show_webbyparameter in Laravel config (#6741)Features
AggregationBuilder::execute()(#6933)v4.0.22Compare Source
Bug fixes
v4.0.21Compare Source
Bug fixes
Features
v4.0.20Compare Source
Bug fixes
Features
v4.0.19Compare Source
Bug fixes
Compatibility with Laravel 12.
v4.0.18Compare Source
Bug fixes
Features
v4.0.17Compare Source
Bug fixes
To save some time during cache warmup we recommend to define uri variables such as:
uriVariables: ['id']. More details at #6954.Features
v4.0.16Compare Source
Bug fixes
Features
v4.0.15Compare Source
Bug fixes
Features
Also contains v3.4.15 changes.
v4.0.14Compare Source
Bug fixes
Also contains v3.4.14 changes.
v4.0.13Compare Source
Bug fixes
Also contains v3.4.10 changes.
v4.0.12Compare Source
Bug fixes
(#6855)
Configuration
📅 Schedule: (in timezone America/New_York)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.