CVE-2025-12528Pie Forms for WP是WordPress的一个表单构建插件,在1.6及之前所有版本中存在严重的任意文件上传漏洞。该漏洞位于format_classic函数中,由于validate_classic方法仅验证文件扩展名并设置错误消息,但未能阻止文件上传过程的继续执行,导致攻击者可以上传危险文件类型如PHP文件。成功利用此漏洞可实现远程代码执行,从而完全控制受影响的WordPress站点。虽然利用需要猜测文件存放目录(基于可预测的哈希值),且文件名使用安全哈希方法生成增加了利用难度,但由于攻击者可通过自动化脚本进行暴力猜测,结合无需认证即可利用的特性,该漏洞仍具有较高的实际威胁。CVSS评分8.1,属于高危漏洞,建议立即升级到最新版本或采取临时缓解措施。
漏洞根源在于Pie Forms for WP插件的文件上传处理逻辑存在缺陷。在includes/fields/fileupload.php的第18行、331行和475行附近,format_classic函数在处理文件上传时调用validate_classic方法进行文件类型验证。该验证方法仅检查文件扩展名并在验证失败时设置错误消息变量,但关键问题是验证逻辑并未使用return或die等语句终止后续的上传处理流程,导致即使验证失败,带有危险扩展名(如.php)的文件仍会被保存到服务器。文件存储路径采用基于表单ID和时间的哈希值生成,目录结构具有可预测性。攻击者需要构造特定的文件上传请求,通过暴力猜测或分析哈希算法预测文件存放位置,然后访问上传的恶意文件以触发PHP代码执行,实现对目标站点的完全控制。建议查看插件源代码中的文件上传处理逻辑以获取更详细的漏洞利用信息。