Apollo Federation has prototype pollution via incomplete key sanitization
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 2.13.2, 2.12.3, 2.11.6, 2.10.5, 2.9.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 1 proof of concept on GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
Apollo Federation is an architecture for declaratively composing APIs into a unified graph. Prior to 2.9.6, 2.10.5, 2.11.6, 2.12.3, and 2.13.2, a vulnerability exists in query plan execution within the gateway that may allow pollution of Object.prototype in certain scenarios. A malicious client may be able to pollute Object.prototype in gateway directly by crafting operations with field aliases and/or variable names that target prototype-inheritable properties. Alternatively, if a subgraph were to be compromised by a malicious actor, they may be able to pollute Object.prototype in gateway by crafting JSON response payloads that target prototype-inheritable properties. This vulnerability is fixed in 2.9.6, 2.10.5, 2.11.6, 2.12.3, and 2.13.2.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- @apollo federation-internals
From 2.13.0-preview.0 · fixed in 2.13.2; From 2.12.0-preview.0 · fixed in 2.12.3; From 2.11.0-preview.0 · fixed in 2.11.6; From 2.10.0-alpha.0 · fixed in 2.10.5; fixed in 2.9.6
- @apollo gateway
From 2.13.0-preview.0 · fixed in 2.13.2; From 2.12.0-preview.0 · fixed in 2.12.3; From 2.11.0-preview.0 · fixed in 2.11.6; From 2.10.0-alpha.0 · fixed in 2.10.5; fixed in 2.9.6
- @apollo query-planner
From 2.13.0-preview.0 · fixed in 2.13.2; From 2.12.0-preview.0 · fixed in 2.12.3; From 2.11.0-preview.0 · fixed in 2.11.6; From 2.10.0-alpha.0 · fixed in 2.10.5; fixed in 2.9.6
- @apollo/federation-internalsnpm
fixed in 2.9.6
- @apollo/federation-internalsnpm
From 2.10.0 · fixed in 2.10.5
- @apollo/federation-internalsnpm
From 2.11.0 · fixed in 2.11.6
- @apollo/federation-internalsnpm
From 2.12.0 · fixed in 2.12.3
- @apollo/federation-internalsnpm
From 2.13.0 · fixed in 2.13.2
- @apollo/gatewaynpm
fixed in 2.9.6
- @apollo/gatewaynpm
From 2.10.0 · fixed in 2.10.5
- @apollo/gatewaynpm
From 2.11.0 · fixed in 2.11.6
- @apollo/gatewaynpm
From 2.12.0 · fixed in 2.12.3
- @apollo/gatewaynpm
From 2.13.0 · fixed in 2.13.2
- @apollo/query-plannernpm
fixed in 2.9.6
- @apollo/query-plannernpm
From 2.10.0 · fixed in 2.10.5
- @apollo/query-plannernpm
From 2.11.0 · fixed in 2.11.6
- @apollo/query-plannernpm
From 2.12.0 · fixed in 2.12.3
- @apollo/query-plannernpm
From 2.13.0 · fixed in 2.13.2