CVE-2025-9212CVE-2025-9212是WordPress WP Dispatcher插件中存在的一个高危安全漏洞。该漏洞源于插件在处理文件上传时缺少必要的文件类型验证机制,使得经过身份验证的攻击者能够向受影响的服务器上传任意类型的文件。此漏洞影响该插件所有1.2.0及以下版本。
根据CVSS 3.1评分体系,该漏洞评分为7.5分,属于高危级别。攻击者只需要具备Subscriber级别的订阅者权限即可利用此漏洞,这意味着几乎所有拥有WordPress网站账户的用户都具备发起攻击的条件。攻击者可以通过上传包含恶意代码的文件(如PHP WebShell)来尝试实现远程代码执行(RCE),从而完全控制受影响的WordPress网站。
值得注意的是,虽然上传目录中存在.htaccess文件在一定程度上限制了直接通过上传的PHP文件执行代码的能力,但攻击者仍可通过多种方式绕过该限制,例如上传.htaccess文件覆盖现有配置、利用其他可执行的文件类型、或寻找其他可利用的攻击面。该漏洞由Wordfence安全团队的安全研究员发现并报告,于2025年10月3日正式公开披露。
此漏洞对WordPress网站的安全构成严重威胁,特别是在多用户网站、会员制网站或允许用户注册的网站环境中,攻击者可以通过注册一个普通订阅者账户来利用此漏洞,进而获取服务器控制权限,导致数据泄露、网站篡改、恶意软件分发等严重后果。
该漏洞的技术根源在于WP Dispatcher插件中的wp_dispatcher_process_upload()函数(位于admin/class-wp-dispatcher-add-new-upload.php文件中,第110行附近)。该函数在处理用户上传的文件时,未对文件类型、扩展名或MIME类型进行充分验证。
具体而言,正常的文件上传处理流程应当包含以下安全检查:1)验证文件扩展名是否在白名单中;2)验证文件的MIME类型;3)重命名上传文件以防止执行;4)将上传文件存储在Web根目录之外或禁止执行的目录中。然而,wp_dispatcher_process_upload()函数缺少这些关键的安全验证步骤,允许攻击者上传任意扩展名的文件,包括.php、.phtml、.php5等可执行脚本文件。
攻击利用方式如下:
1. 攻击者首先注册或使用已有的Subscriber级别账户登录WordPress站点;
2. 访问WP Dispatcher插件提供的文件上传功能页面;
3. 构造包含恶意PHP代码的文件(如包含system($_GET['cmd'])的简单WebShell),并通过上传接口提交;
4. 由于缺少文件类型验证,恶意文件被成功上传到服务器;
5. 攻击者尝试访问上传的文件URL,虽然.htaccess文件提供了一定保护,但攻击者可以通过上传覆盖性的.htaccess文件、利用解析漏洞或其他技术手段实现远程代码执行。
该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H,表明攻击通过网络进行(AV:N),攻击条件较为复杂(AC:H,因.htaccess限制),需要低权限认证(PR:L),无需用户交互(UI:N),对机密性、完整性和可用性均有高影响。