CVE-2026-9067 (CVSS 9.1) - The Schema & Structured Data for WP & AMP WordPress plugin before 1.60 does not
CVE-2026-9067 是WordPress Schema & Structured Data for WP & AMP插件中的严重漏洞,CVSS 9.1。未经身份验证的攻击者可绕过文件类型检查上传任意文件,导致远程代码执行。所有1.60以下版本均受影响,请立即升级。
CVE-2026-9067 (CVSS 9.1) - The Schema & Structured Data for WP & AMP WordPress plugin before 1.60 does not
📋 漏洞概述
WordPress Schema & Structured Data for WP & AMP插件存在前台AJAX文件上传缺陷,未授权用户可上传任意恶意文件,导致远程代码执行风险。
📋 基础信息
| 受影响版本 | Schema & Structured Data for WP & AMP WordPress plugin < 1.60 |
| 漏洞类型 | 不安全的文件上传(未经身份验证的文件类型限制绕过) |
| CVSS | 9.1 · Critical |
| CVE | CVE-2026-9067 |
🔬 漏洞根因
该插件在1.60版本之前,前端AJAX文件上传处理程序未对用户权限进行检查,且未对上传文件的实际内容与端点预期的媒体类型(仅限图片或视频)进行二次验证。攻击者可通过直接构造带有恶意后缀和payload的HTTP请求,绕过由JSON或MIME类型暗示的简单检查,利用WordPress媒体库允许的上传类型机制,上传.php、.phtml、.shtml等可执行脚本(推测,因WordPress默认允许上传的文件类型列表可通过配置扩展,且插件未做白名单强制约束)。
🎯 攻击场景
1. 前提:目标站点运行受影响插件版本(<1.60),且WordPress媒体上传接口未做额外加固。2. 攻击者识别插件暴露的AJAX端点(如/wp-admin/admin-ajax.php,携带插件特定action参数)。3. 构造POST请求,将恶意PHP webshell伪装成图片文件(如修改Content-Type为image/jpeg,文件内容包含<?php system($_GET['cmd']);?>并添加图片文件头魔术字节)。4. 发送请求后,文件被存储到WordPress媒体库中(可推测地址为/wp-content/uploads/YYYY/MM/filename.php)。5. 攻击者直接访问上传成功的PHP文件,通过GET参数传递系统命令,实现远程代码执行。
💥 漏洞影响
未经身份验证的攻击者可上传任意文件类型,包括可执行的PHP脚本,从而在目标服务器上获得远程代码执行能力。成功利用后,攻击者可完全控制WordPress站点,窃取数据库、修改内容、植入恶意软件、利用服务器横向移动等,影响范围包括所有运行该插件且未升级的站点。
🛡️ 修复建议
立即将插件升级至1.60或更高版本。临时缓解措施包括:在Web服务器层面(如Nginx/Apache)禁用对WordPress上传目录的执行权限;配置.htaccess规则阻止上传目录中PHP文件的执行;使用Web应用防火墙(WAF)拦截含有恶意payload的图片上传请求。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2026-9067
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-9067
- https://wordpress.org/plugins/schema-and-structured-data-for-wp/
- 原始来源(NVD-Latest)
🚨 威胁评估
| 📈 EPSS 利用概率 | 低 (0.1%) (高于 17.8% 的漏洞) |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 1 个公开 PoC 仓库 |
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-06-12 08:09 | 来源: NVD-Latest
🤖 常见问题解答(FAQ)
❓ 如何检测是否已被利用?
检查WordPress媒体库中是否有非标准文件扩展名(如.php)、近期未知用户上传的可疑文件,以及服务器上传目录中存在的异常日志记录(如向外部IP请求)。也可使用文件完整性监控工具扫描webroot下新增的可执行文件。
❓ 该漏洞是否可被远程利用?
是,无需任何身份验证即可通过前端AJAX端点远程利用。攻击者仅需向/wp-admin/admin-ajax.php发送精心构造的POST请求。
❓ 修复前如何临时禁用文件上传?
临时在插件的PHP代码中注释或删除AJAX上传相关的action注册函数,或在Web服务器层面禁用对/admin-ajax.php的POST访问(需权衡可能影响其他正常功能)。更推荐直接升级插件。