事件概述
2026年7月17日,WordPress官方发布安全更新,修复了被安全研究人员命名为“wp2shell”的严重漏洞链。这是近十年来WordPress核心首个被确认野外利用的预认证远程代码执行(Pre-Auth RCE)漏洞组合,由CVE-2026-63030和CVE-2026-60137两个独立漏洞串联形成。攻击者无需任何账号权限、无需安装任何插件,仅通过匿名HTTP请求即可完全接管默认配置的WordPress站点。
据Tenable Research Special Operations团队及Wordfence Intelligence确认,公开的概念验证(POC)代码在漏洞披露后数小时内即出现,多家安全厂商已确认野外活跃攻击。WordPress.org已对受影响的支持版本启用了强制自动更新。
漏洞技术细节
CVE-2026-63030:REST API批处理路由混淆
| CVSS v3.1 | 9.8(Critical) |
| 漏洞类型 | REST API Batch Route Confusion |
| 引入版本 | WordPress 6.9 |
| 认证要求 | 无需认证 |
该漏洞存在于WordPress REST API的/wp-json/batch/v1批处理端点中。WP_REST_Server::serve_batch_request_v1()函数在处理批量请求时同时维护$matches(命中的处理程序)和$validation(校验结果)两个并行数组。当某个子请求路径在wp_parse_url()解析失败时,该子请求仅被追加到$validation数组而未进入$matches数组,导致数组下标错位,使得后续子请求被错误分配到不属于它们的处理程序,从而完全绕过校验过滤机制。
CVE-2026-60137:WP_Query SQL注入
| CVSS v3.1 | 5.9(Medium,但作为漏洞链组成部分实际危害为Critical) |
| 漏洞类型 | SQL Injection |
| 受影响版本 | WordPress 6.8.0 – 6.8.5(独立SQL注入);6.9.x + 7.0.x(完整RCE链) |
| 注入点 | WP_Query的author__not_in参数 |
攻击者通过构造嵌套的批量请求,在内层POST请求中夹带GET参数(如author_exclude)。此类参数进入WP_Query后未做过滤便直接拼接到SQL语句中,从而触发布尔型与时间型盲注。利用该注入可读取数据库中的任意内容,包括管理员密码哈希。
完整攻击链
- 入口:通过CVE-2026-63030的路由混淆绕过REST API校验
- 注入:利用CVE-2026-60137执行SQL盲注,读取
wp_users表中管理员密码哈希 - 破解:离线破解管理员密码哈希(WordPress默认使用phpass,弱密码可在数分钟内破解)
- 代码执行:以管理员身份登录后台,通过插件/主题上传功能植入恶意PHP文件,实现任意代码执行
受影响版本
- 完整RCE链:WordPress 6.9.0 – 6.9.4、7.0.0 – 7.0.1
- 独立SQL注入:WordPress 6.8.0 – 6.8.5
影响评估
WordPress是全球使用量最大的开源内容管理系统,部署量超过5亿个网站。wp2shell漏洞链的实战威胁极高:
- 零前提条件:默认安装、无插件即可利用
- 完全匿名:攻击者无需任何账户
- 大规模自动化:极易被整合进大规模扫描和攻击工具
- 持久化控制:获取管理员权限后可安装后门插件、篡改内容、进一步渗透服务器
Cloudflare指出,当”未使用持久化对象缓存“时,漏洞代码路径可被触发。这也是大多数共享主机和小型VPS环境的默认配置。
修复建议
立即升级
WordPress官方已发布修复版本,强烈建议所有用户立即升级:
- WordPress 6.8.x → 升级至6.8.6或更高
- WordPress 6.9.x → 升级至6.9.5或更高
- WordPress 7.0.x → 升级至7.0.2或更高
WordPress.org已对受影响版本启用强制自动更新,但手动检查确认升级状态仍然必要。
临时缓解措施(无法立即升级时)
- 在Web服务器(Nginx/Apache)层面禁用或限制
/wp-json/batch/v1端点的访问 - 使用WAF规则拦截包含嵌套批量请求模式的异常HTTP请求
- 为所有管理员账户启用强密码策略和MFA多因素认证
- 监控
wp_users表中是否出现异常管理员账户 - 检查
wp-content/plugins目录下是否有未知插件
检测与排查
- 使用Searchlight Cyber提供的wp2shell.com在线检测工具扫描站点
- 在Web服务器日志中搜索对
/wp-json/batch/v1的大量异常POST请求 - 检查数据库慢查询日志中是否出现异常的
author__not_in相关查询 - 审核所有已安装插件和主题的最近修改时间