(9.8分)CVE-2026-18143:WordPress报价插件未认证任意文件上传"

admin 2026-10-16 08:14:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

(9.8分) CVE-2026-18143:WordPress报价插件未认证任意文件上传

红队安全圈
红队安全圈

红队安全圈

2026年9月26日 20:00
重庆

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

一个 WooCommerce 报价插件的上传接口没做任何文件校验,未认证攻击者可以直接把 PHP 文件写进 Web 可访问目录——CVSS 9.8,而且目前没有补丁。

今天这条 CVE-2026-18143 关注度还很低,但利用价值不低。Request a Quote for WooCommerce(Addify 出品的询价报价插件)所有版本 ≤ 2.9.2 存在未认证任意文件上传:popup 上传处理函数 afrfq\_submit\_quote\_via\_popup() 完全不校验文件扩展名和 MIME 类型,直接拿攻击者传入的原始文件名当 move\_uploaded\_file() 的目标路径。条件齐备时,任何没有账号的人都能把可执行文件(比如 PHP Webshell)传到一个 Web 可访问的临时 RFQ 上传目录。CVSS 3.1 评分 9.8(CRITICAL),向量 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H。

01  漏洞速览

漏洞编号CVE-2026-18143

影响产品Request a Quote for WooCommerce

影响版本≤ 2.9.2(全部版本)

漏洞类型未认证任意文件上传(CWE-434)

危害等级CVSS 9.8 CRITICAL

攻击前提无需账号;需开公开报价+popup流程

修复状态暂无补丁,插件已下架

02  漏洞成因

问题出在 popup 上传这条链路上。afrfq\_submit\_quote\_via\_popup() 处理询价弹窗的文件上传时:

1. 不校验扩展名:没有白名单限制 .jpg/.png 这类安全格式,.php 直接放行;

2. 不校验 MIME 类型:Content-Type 完全不检查;

3. 原始文件名直接落盘:攻击者上传的文件名(包括扩展名)原样用作 move\_uploaded\_file() 的目标路径,没有重命名、没有清洗。

三者叠加,攻击者上传 shell.php 时,PHP 文件被原样写入一个 Web 可直接访问的临时 RFQ 上传目录。目录本身 Web 可访问,意味着文件落盘后立刻可以请求执行——拿到 Webshell 只是多一次 HTTP 请求的事。

触发条件只有一个:站点启用了公开报价规则(public quote rule)并开启多页 popup 流程。这种配置对把报价插件当公开询价入口用的 B2B 站来说非常常见。

03  影响范围

受影响:所有版本 ≤ 2.9.2,即当前所有已发布版本。

已修复:无。官方尚未发布任何补丁版本。

一个值得注意的信号:插件目录当前只剩 trunk 里的少量文件,tags 目录为空——插件已从 WordPress 官方插件库整体下架。这类下架通常意味着问题严重且修复遥遥无期,装着的站点不能等更新。

04  危害推演

目前没有公开的成熟 PoC,但从披露的成因可以把攻击路径完整推出来:

  1. 定位使用了该插件的 WooCommerce 站点(询价按钮特征明显);

  2. 确认站点开启了公开报价 + popup 流程(访问商品页看是否弹多页询价表单);

  3. 通过 popup 表单的文件上传字段提交 shell.php,MIME 伪装成图片即可;

  4. 文件落在 Web 可访问的临时 RFQ 上传目录,直接请求该 URL 触发执行;

  5. 后续就是标准的 WordPress 后渗透:翻 wp-config.php 拿数据库凭据、建立持久化。

危害等级 C:H/I:H/A:H 全拉满是准确的:Webshell 意味着服务器级完全失陷,不只是页面篡改。

05  检测与排查

确认插件及版本

curl -s https://你的站点/

wp-content/plugins/

woocommerce-request-a-quote/

readme.txt \

| grep -i \"stable tag\"

探测特征路径是否存在

curl -s -o /dev/null \

-w \"%{http\_code}\" \

https://你的站点/wp-content/

plugins/

woocommerce-request-a-quote/

后台检查:WooCommerce → 报价规则设置,看是否存在启用状态的公开报价规则 + 多页 popup 流程。有,且版本 ≤ 2.9.2,即视为受影响。

同时检查临时 RFQ 上传目录里有没有异常 .php 文件——如果已经有,站点大概率已被打过,需要按失陷处理而不是只删文件。

06  修复建议

1. 没有补丁,最稳妥的处理是停用并卸载该插件,换用其他询价方案。

  1. 必须保留功能的站点:立即关闭所有公开报价规则的 popup 流程,砍掉未认证上传入口。

  2. 在 WAF / Nginx 层对该插件的 AJAX 上传接口加白名单,只放行图片扩展名,拒绝对上传目录的 PHP 执行:

Nginx:禁止上传目录执行 PHP

location ~\* /uploads/

.\rfq.\\.php$ {

deny all;

}

  1. 排查服务器上的新增 PHP 文件和异常访问日志,确认是否已被利用。

07  红队视角

利用门槛极低:AV:N/AC:L/PR:N/UI:N,无需账号、无需交互、curl 就能走完全流程。唯一变量是目标站点是否开启了 popup 流程,而这在真实 B2B 站里比例不低。

无补丁窗口期是最肥的阶段:从披露到官方出补丁之间的这段时间,全网所有装了这个插件的站点都是软柿子。NVD 上这条记录刚发布、关注度还低,自动化扫描器批量铺开只是时间问题。

横向价值:WordPress 插件生态里文件上传类的通病就是只信前端。审计同类插件时优先看三个点:move\_uploaded\_file() 的目标路径是否用了用户可控文件名、扩展名白名单是否存在、上传目录是否 Web 可执行。三个条件凑齐基本就是一个 9 分洞。

对防御方:如果客户环境里有这个插件,不要等官方更新——按上面第 06 节的 Nginx 规则先止血,再规划替换方案。

一句话总结:无补丁的 9.8 未认证 RCE 前置,装了这个插件的站点今天就该下架它,而不是等更新。

08  POC 链接

暂无公开成熟 PoC,以下为漏洞库详情页:

https://www.wordfence.com/threat-intel/vulnerabilities/id/3417ec27-6abf-45c7-945f-6ef456ba1187

https://nvd.nist.gov/vuln/detail/CVE-2026-18143

说明:Wordfence 漏洞库 / NVD 详情页

如果文章对您有收获,欢迎关注、点赞、推荐、转发。

— END —


全程直播黑客操作!蜜罐完整捕获PolinRider供应链攻击,伪装.NET服务三层持久化,专盯开发者窃取源码与钱包" 网络安全文章

全程直播黑客操作!蜜罐完整捕获PolinRider供应链攻击,伪装.NET服务三层持久化,专盯开发者窃取源码与钱包"

本文详细披露了蜜罐捕获polinrider供应链攻击的完整过程。攻击者伪装招聘方诱导开发者安装恶意pypi包pybitjs,植入多层伪装成微软.NET优化服务的持久化后门,窃取源码、凭证与加密货币钱包密钥。文章提供了狩猎自查清单与防御建议,强调开发者本地工作站已成为APT供应链攻击的首要突破口。
中美人工智能政策、技术与科研对比——基于“政策、技术、科研”三维分析框架" 网络安全文章

中美人工智能政策、技术与科研对比——基于“政策、技术、科研”三维分析框架"

文档构建政策-技术-科研三维框架,系统比较中美AI发展差异。中国以产业落地为导向,美国以AGI突破为主导;科研呈现中国数量领先、美国质量领先格局,前沿模型差距显著收窄。建议构建可执行政策机制、多维量化评估体系及专家参与决策机制,形成应用优势加基础突破双轮驱动格局。
评论:0   参与:  0