CVE-2026-32621
Object.prototype Pollution Vulnerability in Apollo Federation Gateway
Publication date: 2026-03-16
Last updated on: 2026-03-16
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| apollo | gateway | to 2.13.2 (exc) |
| apollo | query_planner | to 2.13.2 (exc) |
| apollo | federation_internals | to 2.13.2 (exc) |
| apollo_federation | apollo_federation | to 2.13.2 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-1321 | The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype. |
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
Can you explain this vulnerability to me?
[{'type': 'paragraph', 'content': "CVE-2026-32621 is a critical prototype pollution vulnerability in Apollo Federation's gateway component. It occurs because the gateway does not properly sanitize keys during query plan execution, allowing an attacker to modify the JavaScript Object.prototype."}, {'type': 'paragraph', 'content': 'A malicious client can exploit this by sending specially crafted GraphQL operations with field aliases or variable names targeting prototype-inheritable properties like __proto__, constructor, or prototype. Alternatively, if a subgraph is compromised, an attacker can send malicious JSON responses that pollute Object.prototype in the gateway.'}, {'type': 'paragraph', 'content': 'Since Object.prototype is shared globally across the Node.js process, this pollution can affect all subsequent requests handled by the gateway, potentially causing unexpected application behavior, privilege escalation, and data integrity violations.'}] [1]
How can this vulnerability impact me? :
Exploitation of this vulnerability can lead to widespread security issues within applications using Apollo Federation. Because Object.prototype is globally shared, pollution can affect all requests processed by the gateway.
- Unexpected application behavior due to altered prototype properties.
- Privilege escalation, allowing attackers to gain unauthorized access or capabilities.
- Data integrity violations, potentially corrupting or manipulating data.
- Other security impacts depending on how the polluted properties are used by the application or its dependencies.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
Detection of this vulnerability involves identifying GraphQL operations or JSON payloads that attempt to pollute Object.prototype by using field aliases or variable names such as __proto__, constructor, or prototype.
Since the vulnerability arises from crafted GraphQL queries or responses, monitoring network traffic for GraphQL requests containing suspicious field aliases or variable names targeting prototype-inheritable properties is recommended.
No specific commands are provided in the available resources, but you can use network traffic inspection tools (e.g., tcpdump, Wireshark) combined with filtering for GraphQL queries containing these suspicious keys.
Additionally, reviewing application logs for unusual GraphQL operation names or variables that include __proto__, constructor, or prototype may help detect attempts to exploit this vulnerability.
What immediate steps should I take to mitigate this vulnerability?
The primary mitigation is to upgrade affected Apollo Federation packages to patched versions: 2.9.6, 2.10.5, 2.11.6, 2.12.3, or 2.13.2 or later.
No fully effective workaround exists without code changes, but as an interim measure, implement input validation layers to filter out GraphQL operation names or variables that match known prototype pollution patterns such as __proto__, constructor, and prototype.
Ensure that all subgraphs in the federated graph originate from trusted sources to reduce the risk of malicious JSON response payloads causing prototype pollution.