全面解析Revive Adserver十大漏洞:授权绕过、XSS攻击与数据泄露风险

本文详细分析了Revive Adserver安全公告REVIVE-SA-2025-003中披露的十大安全漏洞,包括授权绕过、存储型XSS、反射型XSS、信息泄露和格式化字符串注入等多种类型,并提供了修复建议和受影响版本信息。

[REVIVE-SA-2025-003] Revive Adserver漏洞分析

安全公告概览

  • 公告ID:REVIVE-SA-2025-003
  • 发布日期:2025年11月5日
  • 风险级别:低至高风险
  • 受影响应用:Revive Adserver
  • 受影响版本:≤ 6.0.1,≤ 5.5.2
  • 不受影响版本:≥ 6.0.2,≥ 5.5.3
  • 官方网站:https://www.revive-adserver.com/

漏洞详情

漏洞1:授权绕过

  • 漏洞类型:不当访问控制 [CWE-284]
  • CVE-ID:CVE-2025-48986
  • 风险等级:高
  • CVSS基础分:8.8
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

描述 HackerOne社区成员Dao Hoang Anh (yoyomiski)报告了"admin-user.php"、“advertiser-user.php”、“affiliate-user.php"和"agency-user.php"脚本中的授权绕过漏洞。具有足够权限访问任何受影响脚本的登录用户,可以构造特定负载来更改系统中任何用户的电子邮件地址。

详情 “*-user.php"脚本的功能始终使用POST参数中的数据更新用户详细信息,即使对于现有用户也是如此。当将现有用户添加到帐户时,表单数据会使用该用户的只读电子邮件地址进行准备。攻击者可以构造特定的POST负载来更改任何用户的电子邮件地址,可能通过"忘记密码"功能获取其用户名访问权限。

漏洞2:存储型XSS

  • 漏洞类型:网页生成期间输入中和不当(跨站脚本)[CWE-79]
  • CVE-ID:CVE-2025-52668
  • 风险等级:高
  • CVSS基础分:8.7
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N

描述 HackerOne社区成员Vitaly Simonovich (cyberjoker)报告了"statistics-conversions.php"脚本中的存储型XSS漏洞,追踪器或广告系列名称是攻击的载体。

详情 由主stats.php前端控制器包含的"statistics-conversions.php"脚本在将追踪器和广告系列名称显示在页面上之前,没有对其进行适当的清理。 如果在安装中启用了转化追踪,管理员用户可以设置XSS攻击并创建所有必需的先决条件,从而使指向"stats.php"的特制链接执行注入的JavaScript代码。成功利用需要攻击者诱骗已登录的管理员访问此类URL。虽然无法通过JavaScript访问或窃取会话cookie,但可能进行会话劫持,从而允许创建新用户名或链接其他类型的攻击。

漏洞3:授权绕过

  • 漏洞类型:通过用户控制密钥进行的授权绕过 [CWE-639]
  • CVE-ID:CVE-2025-52670
  • 风险等级:高
  • CVSS基础分:7.1
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L

描述 HackerOne社区成员Vitaly Simonovich (cyberjoker)报告了Revive Adserver的"delete-banner.php"脚本中的授权绕过漏洞。具有删除横幅权限的用户被错误地允许删除属于其他帐户的横幅。

详情 Revive Adserver的"delete-banner.php"脚本在删除资源之前没有正确检查"bannered"参数的所有权。这允许进行多种类型的恶意攻击,并严重影响受影响系统的数据完整性。

漏洞4:反射型XSS

  • 漏洞类型:网页生成期间输入中和不当(跨站脚本)[CWE-79]
  • CVE-ID:CVE-2025-55124
  • 风险等级:中
  • CVSS基础分:6.1
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

描述 HackerOne社区成员Dang Hung Vi (vidang04)报告了自Revive Adserver 6.0.0以来"banner-zone.php"脚本中的反射型XSS漏洞。攻击者可以构造包含参数中HTML负载的特定URL。如果已登录的管理员访问该URL,HTML将被发送到浏览器并执行恶意脚本。

详情 发送到"banner-zone.php"脚本的"filterWebsite"和"filterZone” GET参数在输出中使用时没有经过适当的清理,允许攻击者构造特定URL并将负载输出到HTML、JS和/或CSS上下文中。成功利用需要攻击者诱骗已登录的管理员访问特制的URL。最重要的是,无法通过JavaScript访问或窃取会话cookie,因此破坏将是有限的。

漏洞5:反射型XSS

  • 漏洞类型:网页生成期间输入中和不当(跨站脚本)[CWE-79]
  • CVE-ID:CVE-2025-48987
  • 风险等级:中
  • CVSS基础分:4.3
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N

描述 HackerOne社区成员Ahmed Abdalkhaliq Abdulla (Lu3ky.13)报告了"account-preferences-plugin.php"脚本中的反射型XSS漏洞。攻击者可以构造包含"group"参数中HTML负载的特定URL。如果已登录的管理员访问该URL,HTML将被发送到浏览器并执行恶意脚本。

详情 发送到"account-preferences-plugin.php"脚本的"group” GET参数在输出中使用时没有经过适当的清理,允许攻击者构造特定URL并将负载输出到HTML、JS和/或CSS上下文中。成功利用需要攻击者诱骗已登录的管理员访问特制的URL。最重要的是,无法通过JavaScript访问或窃取会话cookie,因此破坏将是有限的。

漏洞6:信息泄露

  • 漏洞类型:由于不兼容策略导致的敏感信息暴露 [CWE-213]
  • CVE-ID:CVE-2025-52669
  • 风险等级:中
  • CVSS基础分:4.3
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

描述 HackerOne社区成员Dao Hoang Anh (yoyomiski)报告了Revive Adserver用户管理系统中的信息泄露漏洞。非管理员用户可以通过输入其他用户的用户名来利用用户管理系统获取系统中其他用户的电子邮件地址和联系人姓名。

详情 Revive Adserver用户管理系统允许将多个用户链接到系统上的帐户实体。添加新用户时,如果用户名已在系统中存在,Revive Adserver将显示记录中的信息,以允许操作员验证他们是否正在添加他们打算添加的用户。此功能可能被利用来访问系统中其他用户的电子邮件地址和联系人姓名。 为了避免这种级别的信息泄露,已决定禁止将现有用户添加到帐户实体,除非该操作由管理员执行。

漏洞7:信息泄露

  • 漏洞类型:包含敏感信息的错误消息生成 [CWE-209]
  • CVE-ID:CVE-2025-52671
  • 风险等级:中
  • CVSS基础分:4.3
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

描述 HackerOne社区成员Dao Hoang Anh (yoyomiski)报告了Revive Adserver遇到SQL错误时显示的错误消息中的信息泄露漏洞,该漏洞也向非管理员用户显示软件和数据库版本。

详情 Revive Adserver SQL错误消息历史上包含敏感信息,这些信息可能有助于复制和调试问题,例如软件版本、PHP版本和数据库类型和版本以及SQL查询。为了避免不必要的泄露,此类信息现在仅显示给管理员用户。

漏洞8:存储型XSS

  • 漏洞类型:网页生成期间输入中和不当(跨站脚本)[CWE-79]
  • CVE-ID:CVE-2025-52667
  • 风险等级:低
  • CVSS基础分:3.5
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N

描述 HackerOne社区成员Ahmed Abdalkhaliq Abdulla (Lu3ky.13)报告了"inventory-retrieve.php"脚本中的存储型XSS漏洞,广告系列名称是存储型XSS的载体。

详情 “inventory-retrieve.php"脚本通过AJAX使用,由某些UI组件加载JSON信息。该脚本未发送适当的"Content-Type: application/json"标头,默认情况下,其输出在直接加载时将被浏览器解释为HTML。 管理员用户可以制作广告系列名称,以导致脚本在使用参数调用时执行恶意JS代码。成功利用需要攻击者诱骗已登录的管理员访问此类URL。最重要的是,无法通过JavaScript访问或窃取会话cookie,因此破坏将是有限的。

漏洞9:存储型XSS

  • 漏洞类型:网页生成期间输入中和不当(跨站脚本)[CWE-79]
  • CVE-ID:CVE-2025-55123
  • 风险等级:低
  • CVSS基础分:3.5
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N

描述 HackerOne社区成员Dao Hoang Anh (yoyomiski)报告了"banner-edit.php"脚本中的存储型XSS漏洞。管理员用户可以插入HTML/JS负载,并在其广告商用户访问该特定横幅的横幅编辑页面时执行。

详情 横幅名称作为只读HTML显示给横幅编辑页面中的广告商用户。然而,此类HTML在显示时没有经过适当的中和,允许XSS攻击。该漏洞的风险较低,因为目标是访问级别低于攻击者的用户。

漏洞10:格式化字符串注入

  • 漏洞类型:使用外部控制的格式化字符串 [CWE-134]
  • CVE-ID:CVE-2025-52666
  • 风险等级:低
  • CVSS基础分:2.7
  • CVSS向量:CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L

描述 HackerOne社区成员Ahmed Abdalkhaliq Abdulla (Lu3ky.13)报告了Revive Adserver设置中的格式化字符串注入。当在设置中使用特定字符组合时,管理员用户控制台可能因致命PHP错误而被禁用。

详情 存储在配置文件中的Revive Adserver设置也会转换为Symfony依赖注入容器的参数。此类参数允许引用环境变量或其他参数(例如”%kernel.cache_dir%/foo/bar")。在初始化容器参数时,"%“字符没有正确转义,当找不到引用的参数时,可能会生成PHP致命错误。只有管理员才被允许更改设置,因此,在正常情况下,破坏将是有限的。

解决方案

我们建议更新到Revive Adserver的最新版本5.5.3或6.0.2,或者阅读此安全公告时当前的任何发布版本。

联系信息

Revive Adserver的安全联系人可以通过以下方式联系:。 在联系之前,请查看https://www.revive-adserver.com/security/。我们仅通过HackerOne接受安全报告。

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