Revive Adserver 漏洞报告 #3413890 - 未受限制的setPerPage允许获取巨大结果集 / 资源耗尽 / 批量日志检索
报告者: vidang04 报告日期: 2025年11月6日 上午8:45 (UTC) 状态: 已解决 严重性: 中 (6.5) CVE ID: CVE-2025-55128 弱点分类: 无限制或节流的资源分配
漏洞描述
setPerPage查询参数用于控制日志查看器的分页功能,但该参数在服务器端未经验证或设置上限。攻击者可以提供一个极大的数值(例如setPerPage=100000000000000000),应用程序在构建结果集时会尝试满足该值。此行为可能导致:
- 数据库负载过重
- 响应数据量巨大
- 应用程序响应缓慢
- 可能实现日志条目的批量检索
复现步骤
- 以具有日志查看权限的用户身份进行身份验证。
setPerPage参数的典型值范围为10到100。- 将
setPerPage的值设置为300时,网站仍然会返回结果。
相关截图(已省略具体文件名与ID):
- 展示了
setPerPage设置为允许范围内的典型界面。 - 展示了设置超出范围值(如300)后的结果界面。
影响
- 如果服务器尝试查询/渲染极大的N条记录 → 内存/CPU/数据库I/O急剧增加 → 可能导致超时、内存溢出(OOM)、崩溃(拒绝服务,DoS)。
- 如果后端在单个响应中返回所有数据 → 带宽和时间负载沉重,浏览器客户端可能卡死。
沟通时间线
-
2025年11月6日 上午9:47 (UTC) - mbeccati (Revive Adserver 员工) 发表评论:
感谢报告。我对这个报告有点犹豫。修复它固然是好事,但如果用户在一个安装实例上拥有合法账户,可以做很多事情让服务器过载,我很难认为这可以被称为一个漏洞。
-
2025年11月6日 上午9:57 (UTC) - vidang04 发表评论:
在日志查看器中,无论是普通用户还是管理员都无法删除日志条目,随着时间的推移,日志量可能会无限增长。这使得经过身份验证的用户可以假借“检查日志”之名,通过操纵
setPerPage合法地请求非常大的结果集,从而在一次操作中批量检索大量数据。 -
2025年11月11日 上午8:55 (UTC) - mbeccati 发表评论:
感谢您的耐心等待。补丁的改动比两行代码的修复要大。我也在检查其他使用分页器的脚本,看是否存在类似问题。
-
2025年11月11日 上午9:32 (UTC) - mbeccati 将报告状态更改为“已解决”:
附件补丁文件
h1-3413890.patch应能修复应用程序多个部分的问题。除非计划有变,我们预计下周发布一个安全修复版本。 -
此后,项目方更新了严重性等级(从7.5降至6.5,以反映攻击需要一定权限)、弱点分类,并分配了CVE-2025-55128。
-
2025年11月19日,报告被公开披露。
附加说明
报告披露后,报告者vidang04就漏洞公告中的署名问题(请求更正为“Dang Hung Vi”)与项目方进行了后续沟通,项目方确认CVE条目存在错误并已请求修改。