Revive Adserver 账户管理中“添加用户”功能的信息泄露漏洞剖析

本文详细分析了Revive Adserver v6.0.0中一个通过“添加用户”查找功能导致的信息泄露漏洞。攻击者可在未授权的情况下,跨账户获取其他用户的个人敏感信息(如联系名称和电子邮件地址)。

信息泄露漏洞报告:通过账户管理(用户访问)中的“添加用户”查找功能

报告 ID: #3401464 报告平台: HackerOne 报告状态: 已解决 严重等级: 中 (CVSS 4.3) CVE ID: CVE-2025-52669 弱点类型: 因策略不兼容导致的敏感信息暴露

漏洞概述

当属于“管理账户1”的用户导航至 用户访问 → 添加用户 并输入用户名时,系统会在所有账户中执行全局查找,而不是将搜索范围限制在当前账户内。如果输入的用户名属于另一个账户(例如“管理账户2”)的用户,应用程序会在“添加用户”表单中返回并显示该用户的联系名称和电子邮件地址——尽管当前用户无权访问该账户。

受影响的版本: revive-adserver 6.0.0

复现步骤

前提条件:

  • 安装有多个账户(管理员、管理账户1、管理账户2)的 Revive Adserver。
  • 攻击者账户 = 管理账户1 下的用户。
  • 受害者账户 = 管理账户2 下的用户。

步骤:

  1. 以属于“管理账户1”的用户身份登录。
  2. 导航至“管理账户1”的“用户访问”页面。
  3. 点击“添加用户”(或将焦点置于“待添加用户的用户名”字段)。
  4. 在用户名字段中输入存在于“管理账户2”中的用户名(例如 yoyomiski)。
  5. 观察响应:表单返回并显示 yoyomiski 的联系名称和电子邮件,尽管您没有访问“管理账户2”的权限。

账户结构示例:

1
2
3
4
5
6
7
Administrator Account
├── Management 1
│    ├── User A1
│    └── User A2
└── Management 2
     ├── User B1 (泄露 邮箱, 联系名称)
     └── User B2 (泄露 邮箱, 联系名称)

影响

  • 信息泄露: 权限较低的用户可以获取其他账户中用户的个人身份信息(联系名称和电子邮件地址)。

时间线与处理

  • 2025年10月27日 15:00 UTC: 报告由安全研究员 yoyomiski 提交。
  • 2025年10月27日 16:02 UTC: Revive Adserver 团队成员 mbeccati 确认收到报告。
  • 2025年10月28日 10:28 UTC: 状态更改为 已分类。开发团队确认了该问题,并解释了其历史原因:用户和账户管理系统在设计之初旨在提供极大的灵活性,本意是一个便利功能,但可能被恶意利用。
  • 2025年10月28日 10:29 UTC: 开发团队提供了修复补丁 (h1-3401464.patch)。修复方案决定将“链接现有用户”的权限限制为仅管理员用户可用(因为管理员已拥有所有信息的访问权,不存在泄露)。非管理员用户输入已存在的用户名时,将收到错误提示,从而将信息泄露范围限制在“特定用户名已被使用”这一事实。
  • 2025年10月28日 11:05 UTC: 状态更改为 已解决。团队计划于2025年11月5日(周三)发布包含多个漏洞修复的安全版本,并会申请CVE-ID。
  • 2025年11月4日 17:27 UTC: 更新CVE引用为 CVE-2025-52669
  • 约13天前(报告披露日): 报告被公开披露(2025年11月19日 09:34 UTC)。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计