Ash身份验证库邮件链接自动点击账户确认漏洞分析
漏洞概述
CVE-2025-32782 是一个影响ash_authentication库的中等严重性漏洞,涉及账户创建确认流程的安全问题。
影响分析
当前账户创建的确认流程使用通过邮件发送的链接触发的GET请求。某些邮件客户端和安全工具(如Outlook、病毒扫描器和邮件预览器)可能会自动跟踪这些链接,无意中确认账户。这使得攻击者能够使用其他用户的邮箱注册账户,并可能通过受害者的邮件客户端自动确认。
重要限制:此漏洞不允许攻击者接管或访问现有账户或私有数据,仅限于新账户的确认。
修复方案
版本4.7.0已发布缓解措施。您还需要升级到ash_authentication_phoenix 2.6.0或更高版本才能利用确认的自动生成视图。
修复方案将确认流程更新为需要明确的用户交互(例如点击确认页面上的按钮),而不是通过GET请求执行确认。这确保了邮件客户端的自动链接预取或扫描不会无意中确认账户。
缓解步骤
- 升级 ash_authentication >= 4.7.0
- 升级 ash_authentication_phoenix >= 2.6.0(如果使用ash_authentication_phoenix)
- 在确认策略中设置
require_interaction? true - 如果使用ash_authentication_phoenix,在auth_routes上方添加confirm_route到路由器
设置 require_interaction? true
修改您的确认策略如下:
|
|
添加confirm_route到路由器
为了使用新的确认流程,您需要将其添加到路由器中以获得所需的行为。它将为新的确认页面LiveView添加新路由。
重要提示 - 在auth_routes上方
如果使用path选项,并且它以/auth或您配置的auth_routes_prefix开头,请确保此操作在auth_routes上方。auth_routes贪婪地处理配置路径的所有路由。
|
|
临时解决方案
如果无法升级,您可以禁用确认路由并创建自己的live view。建议尽可能升级并利用内置视图。
如果不使用提供的视图,您需要添加一个确认LiveView,该视图对旧确认URL执行POST而不是GET。通过将令牌作为参数从链接中取出,并将其作为隐藏字段添加到表单中来实现。该表单没有输入,只有一个按钮,用于发布到确认URL。
参考信息
- GHSA-3988-q8q7-p787
- team-alembic/ash_authentication@99ea389
- https://nvd.nist.gov/vuln/detail/CVE-2025-32782
技术细节
CVSS评分:5.3(中等) 攻击向量:网络 权限要求:无 用户交互:无 影响范围:完整性低影响