漏洞总结:OAuth Provider Callback中Refresh Token泄露 1. 漏洞概述 该漏洞存在于 项目的 服务中。在OAuth Provider的Callback流程中,系统错误地将 直接作为查询参数(Query Parameter)附加到重定向URL中。这导致 可能泄露在浏览器历史记录、服务器访问日志、HTTP Referer头以及Proxy/CDN日志中。 2. 影响范围 受影响组件: / 受影响文件: (第257-261行) 受影响版本: 修复版本: CVE ID: CVE-2020-34909 严重程度: Moderate (中等) 影响: 会话劫持 (Session Hijacking): 攻击者若能在合法客户端消耗前获取该token,可生成新的access tokens。 泄露向量: URL查询参数在自有基础设施(浏览器历史、HTTP Referer、服务器日志、Proxy/CDN日志)中可见。 普遍性: 影响所有OAuth Provider流程(如GitHub, Google, Apple等),因为它们都经过相同的callback handler。 3. 修复方案 实施 PKCE (Proof Key for Code Exchange) 协议。使用PKCE时,authorization code的交换需要 ,只有原始客户端才拥有该密钥,从而防止即使URL被记录,token也无法被滥用。 4. POC代码与利用逻辑 根本原因代码 (Root Cause): 攻击者利用代码 (Attacker uses stolen refresh token): (注:refresh token是一次性使用的,因此只有当合法客户端尚未消耗该token且攻击者拥有你的基础设施时才能获取访问权限)