CVE-2025-64173

7.5 HIGH

📋 TL;DR

This vulnerability in Apollo Router Core allows unauthenticated GraphQL queries to bypass access controls on polymorphic types when @authenticated, @requiresScopes, or @policy directives are inconsistently applied between interface types and their implementing object types. Organizations using Apollo Router with federated supergraphs and authorization directives on polymorphic types are affected. The flaw enables unauthorized data access despite configured security requirements.

💻 Affected Systems

Products:
  • Apollo Router Core
Versions: 1.61.11 and below, 2.0.0-alpha.0 through 2.8.1-rc.0
Operating Systems: All
Default Config Vulnerable: ✅ No
Notes: Only affects deployments using @authenticated, @requiresScopes, or @policy directives on polymorphic types (object types implementing interface types) with inconsistent application between interfaces and implementations.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access sensitive data from all GraphQL endpoints protected by authorization directives on polymorphic types, potentially exposing confidential information, personal data, or proprietary business logic.

🟠

Likely Case

Unauthorized access to some protected GraphQL fields and data that should require authentication or specific scopes, leading to data exposure and potential compliance violations.

🟢

If Mitigated

Limited impact if organizations have additional network-level controls, rate limiting, or comprehensive monitoring that detects unusual query patterns.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires knowledge of GraphQL schema structure and authorization directives, but no authentication is needed to trigger the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.61.12 or 2.8.1

Vendor Advisory: https://github.com/apollographql/router/security/advisories/GHSA-x33c-7c2v-mrj9

Restart Required: Yes

Instructions:

1. Identify your Apollo Router version. 2. Upgrade to version 1.61.12 if using v1.x, or 2.8.1 if using v2.x. 3. Restart the router service. 4. Verify the update by checking the version and testing authorization controls.

🔧 Temporary Workarounds

Remove inconsistent authorization directives

all

Temporarily remove or standardize @authenticated, @requiresScopes, and @policy directives across all polymorphic types to ensure consistent application between interface types and their implementing object types.

Implement query validation middleware

all

Add custom GraphQL validation middleware that checks authorization consistency before processing queries.

🧯 If You Can't Patch

  • Implement network-level access controls to restrict GraphQL endpoint access to authorized users only
  • Enable comprehensive logging and monitoring for unusual query patterns targeting polymorphic types

🔍 How to Verify

Check if Vulnerable:

Check if using affected Apollo Router versions (1.61.11 or below, or 2.0.0-alpha.0 through 2.8.1-rc.0) and review GraphQL schema for inconsistent @authenticated, @requiresScopes, or @policy directives on polymorphic types.

Check Version:

apollo-router --version

Verify Fix Applied:

After upgrading to 1.61.12 or 2.8.1, test authorization controls on polymorphic types by attempting unauthenticated queries that should be blocked.

📡 Detection & Monitoring

Log Indicators:

  • Unusual query patterns targeting polymorphic types without authentication tokens
  • GraphQL queries that bypass expected authorization controls

Network Indicators:

  • Increased GraphQL query volume from unauthenticated sources
  • Queries accessing fields with authorization directives without proper credentials

SIEM Query:

source="apollo-router" AND (query_contains="interface" OR query_contains="implements") AND NOT auth_token_exists

🔗 References

📤 Share & Export