CVE-2025-61132CVE-2025-61132是levlaz braindump v0.4.14版本中存在的一个高危安全漏洞,位于密码重置功能组件中。该漏洞属于主机头注入(Host Header Injection)类型,攻击者可通过对Host请求头进行恶意操控,诱导应用程序生成指向外部恶意站点的密码重置链接。当用户收到并点击这类伪造的密码重置邮件时,其重置令牌会被发送到攻击者控制的服务器,从而导致密码重置中毒攻击(Password Reset Poisoning),最终实现未经授权的账户接管。漏洞的根本原因在于Flask框架的url_for(_external=True)方法在生成外部URL时依赖Host头信息,而应用程序未对SERVER_NAME进行固定配置,使得URL生成过程容易被攻击者操纵。此漏洞无需特殊权限即可利用,只需低权限用户身份即可触发,且无需用户交互即可完成攻击链,对系统机密性、完整性和可用性均构成威胁。
该漏洞存在于levlaz braindump的认证模块中,具体位于app/auth/views.py的密码重置功能实现。漏洞原理如下:Flask应用程序在处理密码重置请求时,使用url_for(_external=True)方法生成包含重置令牌的外链URL。由于应用程序未显式配置Flask的SERVER_NAME参数,url_for会动态使用HTTP请求中的Host头值来构建完整的URL。攻击者可构造如下恶意请求:发送一个包含任意Host头的密码重置请求(如Host: evil.com),Flask将使用该Host头值生成密码重置链接(如https://evil.com/reset-password?token=xxx)。当应用程序向用户发送包含此链接的邮件后,用户的密码重置令牌将被发送至攻击者服务器。攻击者获取令牌后即可重置用户密码,实现账户接管。漏洞利用的关键代码位于视图函数的URL生成逻辑和邮件模板的链接渲染部分。攻击者只需构造一个带有伪造Host头的HTTP请求即可触发漏洞,无需任何特殊权限或用户交互。