CVE-2025-68158CVE-2025-68158是Authlib Python库中的一个中等严重性安全漏洞。Authlib是用于构建OAuth和OpenID Connect服务器的Python库。该漏洞影响版本1.0.0至1.6.5,由于缓存状态/请求令牌的存储未与发起用户会话绑定,导致任何拥有有效state的攻击者都可能发起CSRF攻击。攻击者可以通过自己发起的认证流程轻松获取有效的state,然后利用该漏洞劫持其他用户的认证过程。此漏洞的CVSS评分为5.7,攻击向量为网络,攻击复杂度低,需要低权限用户配合,且需要用户交互。机密性影响为高,但完整性和可用性不受影响。该漏洞已于版本1.6.6中修复。
漏洞根源在于Authlib的FrameworkIntegration类中的set_state_data和get_state_data方法。当OAuth客户端注册时提供了缓存,set_state_data方法将整个state blob写入_state_{app}_{state}键下,而get_state_data方法完全忽略调用者的会话信息。这种设计缺陷使得攻击者可以:1) 自己发起一个OAuth认证流程获取有效state;2) 将该state发送给目标用户;3) 诱骗目标用户完成认证;4) 攻击者利用之前获取的state绑定到自己的会话,从而劫持目标用户的认证结果。攻击成功的关键在于state值未被绑定到特定用户会话,攻击者只需获取一个有效state即可发起攻击,无需获取用户凭证。该漏洞属于OAuth 2.0 CSRF攻击变种,危害在于可导致用户账户被恶意绑定第三方应用或会话被劫持。