CVE-2025-4754:Ash Authentication Phoenix会话过期不足漏洞
漏洞概述
CVE ID: CVE-2025-4754
GHSA ID: GHSA-f7gq-h8jv-h3cq
严重程度: 低危 (CVSS评分2.3)
影响版本: <= 2.9.0
修复版本: 2.10.0
漏洞描述
影响
会话令牌在用户登出后仍在服务器端保持有效,造成以下安全风险:
- 被泄露的令牌(通过XSS、网络拦截或设备盗窃获取)在用户登出后仍可继续使用
- 数据库中存储的会话仍会过期,这限制了漏洞被利用的时间窗口
- 用户无法在共享或可能被入侵的设备上完全使其会话失效
- 默认情况下,更改密码会使所有其他会话失效,因此更改密码作为安全措施是有效的
- 可能导致不符合要求完全会话失效的安全框架的合规性问题
修复方案
补丁
升级到2.10.0版本。升级后,用户必须更新其AuthController实现,使用新的clear_session/2函数及其OTP应用名称。您将通过编译时错误得到提示。
如果您在tokens部分没有将require_token_presence_for_authentication?设置为true,您将看到另一个错误:
|
|
为了在不直接在会话中存储令牌的情况下在登出时撤销会话,我们必须使用某种唯一标识符来实现。如果可能,您应该优先启用require_token_presence_for_authentication?,而不是将其设置为:jti。请注意,无论您在此处做什么,如果您之前没有将require_token_presence_for_authentication?设置为true,将其设置为true或将authentication.session_identifier设置为:jti将使所有当前认证的用户登出。
临时解决方案
您可以在认证控制器的logout/2处理程序中手动撤销令牌。
技术细节
CVSS v4基础指标
攻击向量: 网络
攻击复杂度: 低
攻击要求: 存在
所需权限: 无
用户交互: 被动
脆弱系统影响指标
机密性: 低
完整性: 低
可用性: 无
弱点分类
CWE: CWE-613 - 会话过期不足
参考链接
- GHSA-f7gq-h8jv-h3cq
- team-alembic/ash_authentication_phoenix@a3253fb
- https://nvd.nist.gov/vuln/detail/CVE-2025-4754
- team-alembic/ash_authentication_phoenix#634