Revive Adserver 存储型XSS漏洞:低权限用户可威胁管理员账户安全

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

漏洞报告 #3411750 - 横幅模态框中显示的广告活动名称存在存储型XSS

描述

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

由于任何认证的普通用户都可以存储攻击载荷,因此攻击向量是远程的,对于拥有有效账户的攻击者来说利用门槛极低。

复现步骤

攻击者注入了XSS脚本代码:

图片:163.45 KiB

执行结果:

图片:167.15 KiB

影响

远程认证攻击者(普通用户)可以植入在管理员浏览器中执行的JavaScript。 可能的后果(取决于环境和Cookie设置):

  • 管理员会话窃取(如果Cookie可访问)。
  • 通过管理员会话执行静默的管理操作(创建/修改/删除资源)。
  • 泄露管理员可访问的敏感UI数据。
  • 为进一步入侵基础设施或数据外泄创造条件。 由于攻击者只需一个普通账户即可持久化攻击载荷,因此该漏洞具有很高的可利用性,应被优先处理。

时间线

  • 2025年11月5日,上午9:32 (UTC):安全研究员 vidang04 向 Revive Adserver 提交了漏洞报告。
  • 2025年11月5日,下午1:26 (UTC):项目方成员 mbeccati 将状态更改为“需要更多信息”,表示未能复现问题,并提供了截图。
  • 2025年11月5日,下午3:03 (UTC)vidang04 将状态改回“新建”,并提供了使用 Revive Adserver 6.0.1 版本的视频证明。
  • 2025年11月5日,下午3:11 (UTC)mbeccati 再次将状态设为“需要更多信息”,指出刚刚发布了 6.0.2 版本,请求研究员在新版本上重新测试,并在必要时提供 clientscampaignsbanners 表的数据库转储。
  • 2025年11月5日,下午3:51 (UTC)vidang04 确认在 6.0.2 版本上问题仍然存在,并提供了网页信息截图。
  • 2025年11月5日,下午3:56 (UTC):项目方成员 erikgeurts 再次请求提供指定的数据库表转储。
  • 2025年11月5日,下午4:08 (UTC)mbeccati 进一步请求以SQL文件形式提供数据。
  • 2025年11月5日,下午5:04 (UTC):在收到研究员提供的SQL数据后,mbeccati 将状态更改为“已分类”,确认能够复现该问题,并承诺将在几天内深入研究并提供一个补丁文件以供验证。
  • 2025年11月6日,凌晨2:03 (UTC)vidang04 表示感谢。
  • 2025年11月11日,下午1:07 (UTC)mbeccati 将报告状态关闭并标记为“已解决”。他解释了漏洞触发的关键条件:只有当广告活动属于不同的广告商时,攻击载荷才会被触发。更换广告商会触发动态加载,此时内容未经转义就被显示并执行。他同时提供了修复补丁文件 h1-3411750.patch
  • 12天前mbeccati 更新了CVE编号为 CVE-2025-55126
  • 12天前mbeccati 请求并最终公开披露了此份报告。公开的安全公告链接为:https://www.revive-adserver.com/security/revive-sa-2025-004/

报告摘要

  • 报告日期:2025年11月5日,上午9:32 UTC
  • 报告者:vidang04
  • 报告对象:Revive Adserver
  • 报告ID:#3411750
  • 状态:已解决
  • 严重等级:中危 (6.5)
  • 公开披露日期:2025年11月19日,下午12:56 UTC
  • 漏洞类型:跨站脚本攻击 (XSS) - 存储型
  • CVE ID:CVE-2025-55126
  • 赏金:无
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计