Revive Adserver 存储型XSS漏洞:低权限用户可劫持管理员会话

本文详细披露了Revive Adserver广告管理系统中的一个存储型跨站脚本漏洞。低权限认证用户可在广告活动名称中注入恶意脚本,当管理员在后台查看横幅广告选择器时,脚本会执行,可能导致会话劫持、未授权操作或数据泄露。

HackerOne 报告 #3411750 - Revive Adserver 横幅模态框中显示的活动名称存在存储型XSS

报告时间: 2025年11月5日,上午9:32 (UTC) 报告者: vidang04 报告对象: Revive Adserver 状态: 已解决 严重性: 中 (6.5) 弱点: 存储型跨站脚本攻击 CVE ID: CVE-2025-55126

漏洞描述

一个低权限的认证用户可以创建或编辑包含HTML/JavaScript的广告商/广告活动名称。这些值存储在应用程序中,随后在管理员后台的“库存 → 横幅广告”选择器中渲染时,没有进行适当的HTML转义。当管理员打开选择器时,存储的脚本会在管理员的浏览器中执行,可能导致账户接管、未授权的管理操作或敏感数据泄露。

由于任何认证的普通用户都可以存储有效负载,对于拥有有效账户的攻击者而言,这是一个远程且易于利用的攻击向量。

复现步骤

  1. 攻击者注入了XSS脚本代码。 (报告附带了相关截图:image.png)

  2. 结果: (报告附带了展示漏洞被触发的截图:image.png)

影响

远程认证攻击者(普通用户)放置的JavaScript代码会在管理员浏览器中执行。 可能导致的后果(取决于环境与Cookie设置):

  • 管理员会话窃取(如果Cookie可访问)。
  • 通过管理员会话执行静默管理操作(创建/修改/删除资源)。
  • 泄露管理员可访问的敏感UI数据。
  • 为进一步的基础设施入侵或数据外泄创造条件。

由于攻击者仅需一个普通账户即可持久化有效负载,此漏洞具有很高的可利用性,应优先处理。

交互时间线

  • 2025年11月5日,上午9:32 (UTC): vidang04 提交报告。
  • 2025年11月5日,下午1:26 (UTC): Revive Adserver 工作人员 mbeccati 将状态更改为“需要更多信息”,表示未能复现问题。
  • 2025年11月5日,下午3:03 (UTC): vidang04 将状态改回“新建”,并提供了视频证明,说明其使用的是 Revive Adserver 版本 6.0.1。
  • 2025年11月5日,下午3:11 (UTC): mbeccati 再次将状态更改为“需要更多信息”,指出刚刚发布了 6.0.2 版本,要求测试新版本并在问题仍然存在时提供相关数据库表(clients, campaigns, banners)的转储文件。
  • 2025年11月5日,下午3:51 (UTC): vidang04 提供了网站版本信息截图(显示为 ver 6.0.2)。
  • 2025年11月5日,下午3:56 - 4:08 (UTC): 工作人员 erikgeurts 和 mbeccati 再次请求数据库转储文件,并指定了 SQL 导出命令。
  • 2025年11月5日,下午5:04 (UTC): mbeccati 在收到并检查SQL转储文件后,将状态更改为“已分类”,确认能够复现该问题,并承诺将在几天内分析原因并提供修复补丁。
  • 2025年11月6日,上午2:03 (UTC): vidang04 表示感谢。
  • 2025年11月11日,下午1:07 (UTC) 左右: mbeccati 关闭报告并将状态更改为“已解决”,指出漏洞触发的条件(活动属于不同的广告商时,切换广告商会触发动态加载,内容未经转义便被显示和执行)。同时附上了修复补丁 h1-3411750.patch (F4990909)。
  • 约7天前: mbeccati 更新了CVE引用(CVE-2025-55126),请求并最终公开了此报告。公开链接:https://www.revive-adserver.com/security/revive-sa-2025-004/

披露日期: 2025年11月19日,下午12:56 (UTC)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计