揭秘Revive Adserver存储型XSS漏洞:从发现到修复

本文详细记录并翻译了Revive Adserver 6.0.0版本中“横幅名称”字段存在的存储型跨站脚本漏洞报告,包括漏洞复现步骤、影响分析、开发者修复回应以及最终的CVE分配和披露过程。

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

提交者: yoyomiski (ID已验证) 提交对象: Revive Adserver 提交时间: 2025年10月30日 2:36 AM UTC

版本: revive-adserver 6.0.0

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

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

复现步骤:

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

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

视频PoC:

时间线与互动

  • 2025年10月30日 8:24 AM UTC: Revive Adserver 工作人员 mbeccati 将状态更改为 已处理,并评论道:“感谢您的报告。问题已确认:攻击者必须是权限级别高于受害者的用户,因此我认为其影响较低。随附的 h1-3404968.diff 文件应能修复此问题。”
    • 附件: F4948789: h1-3404968.diff
  • 2025年10月30日 8:29 AM UTC: 漏洞报告者 yoyomiski 回复:“好的,谢谢 @mbeccati ,你可以更新‘弱点’分类。”
  • 2025年11月4日 8:15 AM UTC: mbeccati 将严重性等级从 中等 更新为 低 (3.5),备注原因为“针对子用户的XSS”。
  • 2025年11月4日 8:16 AM UTC: mbeccati 关闭报告并将状态更改为 已解决,并补充说明:“我们目前正计划明天(11月5日,周三)进行一次安全发布,修复多个漏洞。我们将申请CVE编号并准备详细的安全公告。如果您尚未告知,请告知我们您希望使用的署名。然而,由于部分漏洞的风险等级,我们将在披露细节前等待一段时间,以便让尽可能多的用户在漏洞利用代码泛滥之前完成升级。希望您能理解并同意此计划。”
  • 2025年11月4日 8:22 AM UTC: yoyomiski 回复:“好的,谢谢 @mbeccati ,你可以更新‘弱点’ = 存储型XSS。”
  • 2025年11月4日 8:27 AM UTC: mbeccati 添加了弱点分类:“跨站脚本 (XSS) - 存储型”。
  • 2025年11月4日 6:10 PM UTC: mbeccati 更新CVE引用为 CVE-2025-55123
  • 7天前: mbeccati 请求披露此报告。
  • 7天前: mbeccati 披露了此报告。

报告概览

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