导语
Wordfence 于 2026 年 9 月 25 日披露 WooCommerce 报价插件 Request a Quote for WooCommerce 的未认证任意文件上传漏洞,编号 CVE-2026-18143,CVSS 3.1 评分 9.8,属 CWE-434。2.9.2 及以下版本均受影响,攻击者无需账号即可向站点写入可执行的 PHP 文件。
事件概述
- 受影响产品:Addify 开发的 WordPress 插件 Request a Quote for WooCommerce(目录
woocommerce-request-a-quote) - 受影响版本:至 2.9.2(含);9 月 25 日提交,9 月 26 日公开 CVE 记录
- 插件规模:WooCommerce 官方市场商业插件,市场页显示 5000 余个活跃安装,面向 B2B 与批发型独立站
技术细节
漏洞位于弹窗报价上传处理函数 afrfq_submit_quote_via_popup()。该函数处理附件时未校验文件扩展名与 MIME 类型,并把访客提交的原始文件名直接作为 move_uploaded_file() 的目标路径,文件最终落在 Web 可访问的报价(RFQ)临时上传目录。
POST /wp-admin/admin-ajax.php
action=afrfq_submit_quote_via_popup
filename="shell.php" # multipart filename 未做扩展名过滤
利用前提在配置层面:站点必须存在一条「公开(未登录访客可提交)」的报价规则,且启用多页弹窗上传流程。若报价表单限制为登录用户,或不使用弹窗流程,该处理器不可达——这两点决定排查范围。
公开信息中已出现该漏洞的探测脚本(github.com/murrez/CVE-2026-18143),支持指纹检查与上传探测,虽不含完整 RCE 链,但足以确认目标是否暴露。
影响评估
- 评分:CVSS 3.1 与 4.0 均为 9.8,严重级
- 利用复杂度:低。命中配置前提后无需凭据、无需用户交互,一次 multipart 请求即可完成投递
- 实际危害:任意 PHP 落地并执行,等价于站点接管;订单、客户与支付数据全部暴露
- 在野状态:未进入 CISA KEV,也无确认的在野利用报告
修复版本信息存在分歧:部分信源称厂商已发布 2.9.3,另有信源指出披露当日官方市场页仍将 2.9.2 标为最新版。运维方应以实际插件版本与市场页为准。
修复建议
- 确认插件是否安装;如已安装,立即检查版本并按市场页指引升级到 2.9.3 或更高。
- 在修复版本可获取前,关闭面向匿名访客的报价规则,或将报价提交限制为登录用户,直接切断可达路径。
- 禁止上传目录执行脚本,作为纵深防御(即使文件落地也无法运行):
# Nginx:写在站点 location / 之前
location ~* ^/wp-content/uploads/.*[.](php|phtml|php[0-9])$ {
deny all;
return 403;
}
# Apache/LiteSpeed:在 uploads/.htaccess 中 Require all denied
- 在访问日志中检索
admin-ajax.php上携带action=afrfq_submit_quote_via_popup的 POST 请求,重点看 9 月 26 日之后的记录。 - 检查
wp-content/uploads及报价临时目录下近期新建的.php/.phtml文件;发现异常即视为已被入侵,此时应轮换管理员密码与数据库凭据。