CVE-2025-61541CVE-2025-61541 是存在于 Webmin 2.510 版本中的一个主机头注入(Host Header Injection)漏洞,CVSS 评分为 7.1,严重等级为高危。该漏洞位于 Webmin 的密码重置功能模块(forgot_send.cgi)中,当用户发起密码重置请求时,系统会通过 get_webmin_email_url() 函数构造密码重置链接,而该函数直接使用了 HTTP 请求中的 Host 头来生成完整的 URL。由于 Webmin 未对 Host 头进行严格的校验和过滤,攻击者可以通过篡改 HTTP 请求中的 Host 字段,将恶意的域名注入到发送给用户的密码重置邮件中。当受害者点击邮件中被篡改的重置链接时,重置令牌将被发送到攻击者控制的服务器,攻击者即可利用该令牌重置受害者账户的密码,从而获取目标账户的完全控制权。Webmin 作为一个广泛使用的基于 Web 的系统管理工具,被大量系统管理员用于管理 Linux/Unix 服务器,该漏洞的影响范围较大,可能导致大量服务器面临账户被劫持的风险。
Webmin 2.510 的 forgot_send.cgi 文件在处理用户密码重置请求时,调用了 get_webmin_email_url() 函数来构造密码重置链接的 URL。该函数从 HTTP 请求头中直接提取 Host 字段的值,并将其拼接到密码重置链接中,生成形如 http://<Host>/password_reset.cgi?token=<reset_token> 的 URL。由于 Webmin 服务器未对传入的 Host 头进行验证或过滤,攻击者可以通过发送带有伪造 Host 头的 HTTP 请求来控制密码重置链接中的域名部分。
具体利用方式如下:
1. 攻击者向目标 Webmin 服务器的 forgot_send.cgi 端点发送密码重置请求,并在 HTTP 请求中设置伪造的 Host 头,例如:Host: attacker-controlled-domain.com
2. Webmin 服务器接收到请求后,调用 get_webmin_email_url() 函数,使用伪造的 Host 头构造密码重置链接
3. 系统向受害者的注册邮箱发送包含被篡改的重置链接的邮件
4. 受害者收到邮件后,点击重置链接,请求被发送到攻击者控制的域名
5. 攻击者在自己的服务器上捕获包含重置令牌的请求
6. 攻击者使用获取到的重置令牌,通过正常的密码重置流程重置受害者账户的密码
7. 攻击者成功获取目标账户的控制权
该漏洞的根本原因是 Webmin 在构造 URL 时信任了用户可控的 HTTP Host 头,未采用白名单机制或使用配置文件中的固定域名来生成重置链接。