Revive Adserver | 报告 #3401464 - 通过账户管理(用户访问)中的“添加用户”查询导致的信息泄露 | HackerOne
漏洞提交者: yoyomiski (ID已验证) 提交日期: 2025年10月27日 下午3点(UTC) 受影响版本: revive-adserver 6.0.0
漏洞概述
当属于“管理1”账户的用户导航到“用户访问” -> “添加用户”并输入一个用户名时,系统会执行全局搜索,而非将搜索范围限制在当前账户内。如果输入的用户名属于另一个账户(例如“管理2”),应用程序会在“添加用户”表单中返回并显示该用户的联系姓名和电子邮件地址——即使当前用户没有访问该账户的权限。
账户结构示例:
|
|
复现步骤
前提条件:
- 配置了多个账户(Administrator、Management 1、Management 2)的Revive Adserver实例。
- 攻击者账户 = Management 1 下的用户。
- 受害者账户 = Management 2 下的用户。
步骤:
- 以属于 Management 1 的用户身份登录。
- 导航到 Management 1 的“用户访问”页面。
- 点击“添加用户”(或将焦点置于“要添加的用户名”字段)。
- 在用户名字段中输入一个存在于 Management 2 中的用户名(例如 yoyomiski)。
- 观察响应:表单会返回并显示 yoyomiski 的联系姓名和电子邮件,尽管您无权访问 Management 2。
影响
- 信息泄露:权限较低的用户可以获取其他账户用户的个人身份信息(联系姓名和电子邮件地址)。
时间线与处理过程
- 2025年10月27日,下午4:02 (UTC) - mbeccati (Revive Adserver 员工) 回复表示感谢,并表示将进行调查。
- 2025年10月28日,上午10:28 (UTC) - mbeccati 将状态更改为“已分类”,并确认了该问题。他解释道,用户和账户管理系统是很久以前设计的,旨在提供极大的灵活性。这个本应是便利的功能可能被恶意利用。团队决定限制链接现有用户的功能,仅对管理员用户开放(因为他们已能访问所有信息,不会造成泄露)。非管理员用户输入已存在的用户名时,将收到错误信息。这有效地将信息泄露限制为“特定用户名已被使用”这一事实。团队认为这是在保持功能完整性和提升安全性之间的良好折衷方案,因为用户名存在性检查并非公开可访问,需要有效的系统用户账户。
- 2025年10月28日,上午10:29 (UTC) - mbeccati 提供了补丁文件
h1-3401464.patch (F4940759)以修复此漏洞。 - 2025年10月28日,上午10:38 (UTC) - yoyomiski 回复,表示理解该问题可能与系统原定逻辑相关,修改可能影响业务逻辑,并对团队的细致评审表示感谢,同时询问是否分配了CVE ID。
- 2025年10月28日,上午11:05 (UTC) - mbeccati 将报告状态更改为“已解决”并关闭。他说明团队计划在下周三(11月5日)进行一次安全发布,修复多个漏洞,将申请CVE ID并准备详细的安全公告。由于部分漏洞风险较高,将在细节披露前预留时间,以便用户在漏洞利用程序泛滥前完成升级。
- 2025年10月28日,上午11:14 (UTC) - yoyomiski 同意该计划,并希望以“Dao Hoang Anh (yoyomiski)”的名义获得CVE ID署名。
- 2025年11月4日,下午5:12 (UTC) - mbeccati 将弱点从“信息泄露”更改为“由于策略不兼容导致的敏感信息暴露”。
- 2025年11月4日,下午5:14 (UTC) - mbeccati 将严重等级更新为中等(4.3),并更新了CVSS评分,同时修改了CWE ID(因不鼓励使用CWE-200)。
- 2025年11月4日,下午5:27 (UTC) - mbeccati 将CVE引用更新为 CVE-2025-52669。
- 2025年11月19日,上午9:34 (UTC) - mbeccati 请求并最终披露了此报告。
报告详情
- 报告ID: #3401464
- 状态: 已解决
- 严重性: 中等 (4.3)
- 披露日期: 2025年11月19日,上午9:34 (UTC)
- 弱点: 由于策略不兼容导致的敏感信息暴露
- CVE ID: CVE-2025-52669
- 赏金: 隐藏