CVE-2025-64347 json
Apollo Router Improperly Enforces Renamed Access Control Directives
published 2025-11-06 12 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-38037 , GHSA-g8jh-vg5j-4h3f
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 25%
- public exploits
- 0
- none known
Summary
Apollo Router Core is a configurable Rust graph router written to run a federated supergraph using Apollo Federation 2. Versions 1.61.12-rc.0 and below and 2.8.1-rc.0 allow unauthorized access to protected data through schema elements with access control directives (@authenticated, @requiresScopes, and @policy) that were renamed via @link imports. Router did not enforce renamed access control directives on schema elements (e.g. fields and types), allowing queries to bypass those element-level access controls. This issue is fixed in versions 1.61.12 and 2.8.1.
Patch / fix
- crates.io apollo-router 1.61.12, 2.8.1
- apollographql apollo_helms-charts_router 1.61.12, 2.8.1
- apollographql apollo_router 1.61.12, 2.8.1
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 12 mo ago
Exploit prediction
0.33% chance of exploitation in the next 30 days, higher than 25% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | apollo-router | <1.61.12 >=2.0.0-alpha.0, <2.8.1 |
1.61.12 2.8.1 |
Affected products
- apollographql router
Classification
- Weakness
-
- CWE-284 Improper Access Control
References
Sources
- CVE List CVE-2025-64347
- GitHub Advisory GHSA-g8jh-vg5j-4h3f
- NVD CVE-2025-64347
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.