Revive Adserver 6.0.0 中“横幅名称”字段的存储型XSS漏洞分析与修复

本文详细报告了Revive Adserver 6.0.0版本中“横幅名称”字段存在的一个存储型跨站脚本(XSS)漏洞。攻击者可在该字段注入恶意脚本,当其他有权限的用户查看该横幅时,脚本将在其浏览器会话中执行。报告包含漏洞复现步骤、影响分析及官方提供的补丁文件(h1-3404968.diff)信息。

Revive Adserver 漏洞报告 #3404968 - “横幅名称”字段中的存储型XSS

报告概述

报告ID: #3404968 (副本报告ID)

漏洞标题: “横幅名称”字段中的存储型跨站脚本攻击 (Stored-XSS)

提交者: yoyomiski (已验证身份的黑客)

提交时间: 2025年10月30日,UTC时间上午2:36

报告目标: Revive Adserver

时间轴与参与者:

  • 2025年10月30日,上午8:24 (UTC): Revive Adserver 工作人员 mbeccati 将状态更改为 已分类,并评论:“感谢您的报告。问题已确认:攻击者必须是一个权限高于受害者的用户,因此我认为影响较低。附件 h1-3404968.diff (F4948789) 文件应能修复此问题。”
  • 2025年10月30日,上午8:29 (UTC): 报告提交者 yoyomiski 回复:“好的,谢谢 @mbeccati ,你可以更新‘弱点’类型。”
  • 2025年11月4日,上午8:15 (UTC): mbeccati 将严重性从 中等 更新为 低 (3.5),并注明:“对子用户的XSS攻击”。
  • 2025年11月4日,上午8:16 (UTC): mbeccati 将报告状态更改为 已解决 并关闭报告,评论道:“我们目前计划在明天(11月5日,星期三)进行一次安全发布,修复多个漏洞。我们将申请CVE-ID并准备详细的安全公告。如果您还没有提供,请告知您希望被收录的姓名。然而,由于某些漏洞的风险级别,我们将在披露细节前等待一段时间,以便让尽可能多的用户在利用代码在野外出现之前升级。希望您理解并同意该计划。”
  • 2025年11月4日,上午8:22 (UTC): yoyomiski 再次评论:“好的,谢谢 @mbeccati,你可以更新‘弱点’ = 存储型XSS”。
  • 2025年11月4日,上午8:27 (UTC): mbeccati 添加了弱点类型:“跨站脚本 (XSS) - 存储型”
  • 2025年11月4日,下午6:10 (UTC): mbeccati 将CVE引用更新为 CVE-2025-55123
  • 9天前: mbeccati 请求披露此报告。
  • 9天前: mbeccati 披露了此报告。

漏洞详情

受影响版本: revive-adserver 6.0.0

摘要: 在“横幅 → 名称”字段中存在一个存储型跨站脚本 (XSS) 漏洞。攻击者可以在创建或编辑横幅时,在“名称”字段中插入恶意负载;该负载将被存储在数据库中,随后,当通过“用户访问”(位于“广告客户”下)被添加到该横幅的用户查看该横幅时,负载将在其浏览器中执行。这会导致在受害者会话上下文中持久执行JavaScript。

注意事项: 正如贵方所述,此存储型XSS位于特定区域之外:“横幅需要完整的JavaScript支持,前置/追加代码也是如此。事实上,大多数HTML横幅或跟踪脚本只是一个 <script> 标签。”

复现步骤:

  1. 前往“横幅 → 创建”(或编辑现有横幅)。
  2. 在“名称”字段中,插入负载:"><script>alert(1)</script>
  3. 保存横幅。该名称将持久保存在数据库中。
  4. 通过“用户访问”(广告客户)将另一用户(受害者)添加到该横幅。
  5. 以被添加用户的身份登录。前往“横幅”页面,XSS将被触发。

影响: 在通过“用户访问”(广告客户)有权访问该横幅的用户的浏览器中执行持久性XSS。

概念验证视频: ███

附件:

  • F4948789: h1-3404968.diff (修复该问题的补丁文件)

报告状态信息

  • 报告ID: #3404968
  • 状态: 已解决
  • 严重性: 低 (3.5)
  • 披露时间: 2025年11月19日,上午9:36 (UTC)
  • 弱点: 跨站脚本 (XSS) - 存储型
  • CVE ID: CVE-2025-55123
  • 赏金: 隐藏
  • 账户详情:
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计