CVE-2025-64173Apollo Router Core是使用Apollo Federation 2运行联邦超图的Rust语言编写的可配置图形路由器。在1.61.11及以下版本以及2.0.0-alpha.0至2.8.1-rc.0版本中存在访问控制绕过漏洞。攻击者可以利用该漏洞通过未经认证的查询访问本应受保护的数据。漏洞源于路由器错误处理了接口类型/字段及其实现对象类型/字段上的访问控制指令,当所有实现具有相同访问要求时,指令仅被应用于接口类型/字段,而忽略了实现对象类型/字段上的指令。这导致攻击者可以通过直接查询实现对象来绕过接口上的访问控制限制,访问敏感数据。受影响的访问控制指令包括@authenticated、@requiresScopes和@policy。
该漏洞属于访问控制指令处理逻辑错误。在GraphQL架构中,接口类型(Interface Types)可以包含多个实现对象类型(Implementing Object Types)。开发者通常会在接口和实现对象上定义访问控制指令来保护数据。然而,Apollo Router在1.61.11及以下版本中的实现存在缺陷:当所有实现对象具有相同的访问控制要求时,系统仅检查接口级别的指令,而忽略了实现对象上定义的额外限制。攻击者可以通过构造特定的GraphQL查询,直接查询实现对象类型,绕过接口上设置的@authenticated、@requiresScopes或@policy等访问控制指令,从而获取未授权的敏感数据。漏洞利用的关键在于GraphQL的多态查询能力和访问控制检查的执行顺序问题。