CVE-2025-61536CVE-2025-61536是FelixRiddle dev-jobs-handlebars 1.0版本中存在的一个高危安全漏洞。该漏洞源于应用程序在生成密码重置(magic link)链接时,直接使用了未经信任的HTTP请求头`req.headers.host`来构建绝对URL,并且强制使用`http://`协议方案。这种不安全的实现方式使得攻击者可以通过控制HTTP请求的Host头字段,将密码重置链接中的域名部分替换为攻击者控制的恶意域名。CVSS 3.1评分为8.2分,属于高危级别漏洞,其攻击向量为网络攻击(AV:N),无需任何权限认证(PR:N),也不需要用户交互(UI:N),机密性影响为高(C:H),完整性影响为无(I:N),可用性影响为低(A:L)。该漏洞于2025年10月16日由MITRE组织披露。攻击者可以利用该漏洞实施密码重置令牌窃取、网络钓鱼攻击以及账户接管等恶意行为,对用户账户安全构成严重威胁。当目标系统部署在配置不当的反向代理或负载均衡器后端,且这些中间件未对Host头进行校验或重写时,漏洞的可利用性将进一步增加。
该漏洞的核心技术原理在于Web应用程序对HTTP Host头的盲目信任。在HTTP/1.1协议中,Host头用于指定客户端请求的目标主机,应用程序通常应将其视为不可信的用户输入。然而,dev-jobs-handlebars 1.0在实现密码重置功能时,采用了类似以下的代码模式来生成重置链接:`const resetLink = \`http://${req.headers.host}/reset?token=${token}\``。这种实现存在两个关键安全问题:1)直接使用`req.headers.host`构建URL,攻击者可以通过修改HTTP请求中的Host头来控制链接中的域名部分;2)硬编码使用`http://`协议而非`https://`,即使在生产环境中使用HTTPS,生成的链接仍然是不安全的明文HTTP协议。攻击者可以通过以下方式利用该漏洞:首先,攻击者向目标应用的密码重置接口发送精心构造的HTTP请求,在请求中将Host头设置为攻击者控制的服务器域名(如`evil.com`);然后,当受害用户请求密码重置时,系统会生成包含恶意域名的重置链接并发送给用户;最后,当用户点击该链接时,重置令牌将被发送到攻击者的服务器,攻击者即可使用该令牌重置用户密码并接管账户。此外,如果目标系统位于反向代理或负载均衡器之后,且这些中间件未正确配置X-Forwarded-Host或未对Host头进行验证,攻击者还可以通过X-Forwarded-Host头绕过代理层的保护,进一步增加攻击的成功率。