CVE-2025-32782:Ash身份验证库邮件链接自动点击账户确认漏洞
漏洞描述
影响
账户创建确认流程当前使用通过邮件发送的链接触发的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,在路由器中添加confirm_route,置于auth_routes之上
设置require_interaction? true
按以下方式修改确认策略:
|
|
向路由器添加confirm_route
为了使用此新确认流程,您需要将其添加到路由器中以获得所需行为。它将向新的确认页面LiveView添加新路由。注意path和token_as_route_param?选项,这些选项需要保持与当前默认值的向后兼容性。如果您以某种方式更改了这些路由,可能需要进行调整。
重要提示 - 置于auth_routes之上
如果使用path选项,并且它以/auth或您配置的auth_routes_prefix开头,请确保将其置于auth_routes之上。auth_routes贪婪地处理配置路径的所有路由。
|
|
用户应尽快升级到版本4.7.0,并在其确认策略中设置require_interaction?为true。这将把用于确认的GET请求更改为POST请求。
如果您升级到此版本但未将require_interaction?设置为true,编译将失败,并显示指向此公告的消息。如果您确信自己不受影响,可以绕过此错误。
变通方案
用户是否可以在不升级的情况下修复或补救漏洞? 您可以禁用确认路由并创建自己的实时视图。我们强烈建议您尽可能升级并利用内置视图。如果您不使用提供的视图,则需要添加一个确认LiveView,该视图向旧确认URL执行POST而不是GET。您可以通过将令牌作为参数从链接中取出,并将其作为隐藏字段添加到表单中来实现此目的。该表单没有输入,只有一个按钮,用于发布到确认URL。如果使用Liveview,这将通过phx-trigger-action和phx-action完成。
参考
- GHSA-3988-q8q7-p787
- team-alembic/ash_authentication@99ea389
- https://nvd.nist.gov/vuln/detail/CVE-2025-32782
技术细节
- 严重程度:中等
- CVSS评分:5.3
- 弱点:CWE-306 关键功能缺少身份验证
- 受影响版本:< 4.7.0
- 修复版本:4.7.0
该漏洞涉及身份验证流程中的安全设计缺陷,通过将确认机制从GET请求改为需要用户显式交互的POST请求来解决自动确认问题。