CVE-2025-48827 vBulletin RCE

简介

vBulletin是一款功能强大的开源论坛软件,它支持多种数据库,如MySQL、PostgreSQL等。它提供了灵活的权限管理系统,让管理员可以精细控制不同用户组和用户的访问权限和功能使用,适用于各种规模的在线社区。

影响版本

5.0.0 <= vBulletin < 5.7.6

6.0.0 <= vBulletin < 6.0.4

漏洞成因

vBulletin 的 /ajax/api/ad/replaceAdTemplate 接口本身就存在设计缺陷,而 PHP 8.1+ 的行为变化又放大了这个缺陷,最终导致可远程命令执行(RCE)。 

该接口底层调用 vBulletin 的 API 方法 vB_Api_Ad::replaceAdTemplate()。在 PHP 7 及以下版本中,即使攻击者手工构造请求,protected/private 方法默认无法直接通过外部请求调用;但 PHP 8.1 后,ReflectionMethod::setAccessible(true) 的行为发生变化,使得 vBulletin 依赖反射保护的逻辑失效——攻击者可以直接调用内部方法。

接口用途

ajax/api/ad/replaceAdTemplate 是 vBulletin 提供的 AJAX API 接口,用于在后台管理中对广告模板内容进行替换。也就是说,这个接口原本的功能就是将用户提交的内容写到服务器端模板文件中,用于广告展示。

使用接口时需要用到这几个参数

routestring

这是 vBulletin AJAX 请求必须带的参数之一,用来告诉 vBulletin 调用哪个“路由”处理当前请求。这里的值是 ajax/api/ad/replaceAdTemplate,表示希望调用广告模板的替换接口。

styleid

vBulletin 支持多套“风格/主题”,styleid 用于指定要操作哪个风格中的模板。数字 ID,默认 1 通常是“Default Style”,所以在大多数情况下,这个值 1 意味着对默认风格进行操作。

location

在 vBulletin 中是广告系统的一个参数,表示广告要显示的位置标识,比如“header”、“footer”、“sidebar”等。实际上是随意的自定义值——这个字段在漏洞利用中并不关键,只是需要带上才能通过接口的参数完整性校验。

template

关键参数,表示要把哪段模板内容写入到广告模板文件里

参数导致风险

关键参数是 template,用户可以提交自定义模板内容。vBulletin 会把这个 template 的值直接写入到服务器端的模板文件里,并由后续访问的 PHP 解析执行。如果这里的内容中含有 可执行的 PHP 代码(比如 <?php system($_GET['cmd']); ?>),模板文件一旦被访问,就会被 PHP 引擎执行,导致 RCE。

漏洞复现

除了 template,其余字段(routestring/styleid/location)只是为了符合接口需要的参数格式,否则服务器会返回参数错误。其中最关键的是:routestring 选定漏洞接口;template 提供恶意代码;而 styleidlocation 更多是对 vBulletin 模板系统的“配合参数”,对利用并无具体意义。

参考链接:

vBulletin远程代码执行漏洞 (CVE-2025-48827) 在野利用通告 - 安全内参 | 决策者的网络安全知识库vBulletin Remote Code Execution Vulnerabilities Exploited in the Wild (CVE-2025-48827 & CVE-2025-48828) – Qualys ThreatPROTECT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值