CVE-2026-73179 Apache CXF OAuth2 授权码重用漏洞
影响攻击者可用单个授权码并发换取多个有效访问令牌
Apache CXF 的 JPA OAuth2 授权码授予提供程序未正确执行授权码一次性使用语义。在 READ_COMMITTED 隔离级别下,其先查找后删除的操作非原子,攻击者可通过并发令牌交换请求竞争该操作,从而用同一个授权码获得多个有效访问令牌。
影响范围
受影响组件为 Apache CXF 的 JPA OAuth2 authorization code grant provider;官方修复版本为 4.2.4、4.1.9 和 3.6.13,具体受影响版本范围暂无公开信息。
漏洞详情
漏洞类型为授权码一次性语义执行不当(授权码重用)。成因是授权码校验采用先查询再删除的非原子操作,且依赖共享关系型数据库在 READ_COMMITTED 隔离级别下运行,多个并发请求可同时通过校验。攻击者只需并发发送多个令牌交换请求,即可用同一授权码换取多个访问令牌。
利用条件与风险
利用前提是目标使用 Apache CXF 的 JPA OAuth2 授权码授予提供程序并共享关系型数据库,且攻击者已获取有效授权码;实战中可导致授权码重放、令牌数量超出预期,扩大会话或资源访问范围。
修复建议
官方建议升级至 4.2.4、4.1.9 或 3.6.13 版本修复该问题;临时缓解措施暂无公开信息。
Improper enforcement of single-use authorization code semantics in the JPA OAuth2 authorization code grant provider in Apache CXFallows a remote attacker to obtain multiple valid access tokens from a single authorization code via concurrent token exchange requests that race the non-atomic find-then-delete operation against a shared relational database under READ_COMMITTED isolation. Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fixes this issue.