CVE-2026-5809WordPress 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,导致文件被删除。由于仅需订阅者权限即可触发,该漏洞对网站安全性构成严重威胁,可导致网站完全瘫痪(通过删除配置文件)。