WordPress存在由两个漏洞串联的无认证远程代码执行利用链wp2shell(CVE-2026-63030+CVE-2026-60137),攻击者无需账号即可通过HTTP请求执行任意命令。目前PoC已公开,官方已推送修复版本,建议立即升级。

WordPress 是全球使用最广泛的内容管理系统,驱动着互联网上千万的网站,覆盖从个人博客到企业官网、电商平台的各类场景。
漏洞成因
漏洞影响
攻击者可在服务器上执行任意代码,可能导致服务器被完全控制、数据泄露或业务系统沦陷。
处置优先级:高
漏洞类型:远程代码执行
漏洞危害等级:高
触发方式:网络远程
权限认证要求:无需权限
系统配置要求:默认配置
用户交互要求:无需用户交互
利用成熟度:POC/EXP 已公开
修复复杂度:低,官方已提供修复方案
WordPress 6.9.0-6.9.4、7.0.0-7.0.1
升级修复方案
# 查看当前版本wp core version# 升级到最新稳定版wp core update# 验证升级结果wp core version# 预期输出:6.9.5、7.0.2 或更高
临时缓解方案
以下三种方案均为应急临时措施,可能影响站点正常功能,升级完成后应及时移除。
方案一:安装插件 Disable WP REST API
在 WordPress 插件市场搜索并安装 Disable WP REST API,启用后将阻止未登录用户访问全部 REST API 端点。
方案二:WAF 规则封锁批量端点
在 WAF 或反向代理层同时拦截以下两个路径:
/wp-json/batch/v1/?rest_route=/batch/v1
Nginx 示例:
location ~* ^/wp-json/batch/v1 { return 403;}location ~* rest_route=/batch/v1 { return 403;}
方案三:部署自定义插件
通过 SSH 或 FTP 将以下文件上传至 wp-content/plugins/disable-batch-api-for-unauth.php,然后在 WordPress 后台「插件」页面启用:
/** * Plugin Name: Disable Unauthenticated REST Batch API * Description: Requires an authenticated WordPress user for REST batch requests. * Version: 1.0.0 * Requires at least: 5.6 * License: GPL-2.0-or-later */defined( 'ABSPATH' ) || exit;/** * Reject anonymous requests to the core REST batch endpoint. * * @param mixed $result Pre-calculated dispatch result. * @param WP_REST_Server $server REST server instance. * @param WP_REST_Request $request Current REST request. * @return mixed|WP_Error */functionwporg_require_authentication_for_rest_batch($result, $server, $request ) { if( '/batch/v1' !== strtolower( untrailingslashit( $request->get_route() ) ) || is_user_logged_in() ) { return $result; } return new WP_Error( 'rest_batch_authentication_required', 'Authentication is required to use the batch API.', array( 'status' => 401 ) );}add_filter( 'rest_pre_dispatch', 'wporg_require_authentication_for_rest_batch', -1000, 3 );
漏洞复现
Reproduction
04
长亭应急响应实验室已通过无锋元刃成功复现此漏洞
![【已复现】无需账号、默认配置即可 getshell——WordPress Core 远程代码执行漏洞 【已复现】无需账号、默认配置即可 getshell——WordPress Core 远程代码执行漏洞]()
以下三种方案均为应急临时措施,可能影响站点正常功能,升级完成后应及时移除。
方案一:安装插件 Disable WP REST API
在 WordPress 插件市场搜索并安装 Disable WP REST API,启用后将阻止未登录用户访问全部 REST API 端点。
方案二:WAF 规则封锁批量端点
在 WAF 或反向代理层同时拦截以下两个路径:
/wp-json/batch/v1/?rest_route=/batch/v1
Nginx 示例:
location ~* ^/wp-json/batch/v1 {return 403;}location ~* rest_route=/batch/v1 {return 403;}
方案三:部署自定义插件
通过 SSH 或 FTP 将以下文件上传至 wp-content/plugins/disable-batch-api-for-unauth.php,然后在 WordPress 后台「插件」页面启用:
/*** Plugin Name: Disable Unauthenticated REST Batch API* Description: Requires an authenticated WordPress user for REST batch requests.* Version: 1.0.0* Requires at least: 5.6* License: GPL-2.0-or-later*/defined( 'ABSPATH' ) || exit;/*** Reject anonymous requests to the core REST batch endpoint.** @param mixed $result Pre-calculated dispatch result.* @param WP_REST_Server $server REST server instance.* @param WP_REST_Request $request Current REST request.* @return mixed|WP_Error*/functionwporg_require_authentication_for_rest_batch($result, $server, $request ) {if( '/batch/v1' !== strtolower( untrailingslashit( $request->get_route() ) ) || is_user_logged_in() ) {return $result;}return new WP_Error('rest_batch_authentication_required','Authentication is required to use the batch API.',array( 'status' => 401 ));}add_filter( 'rest_pre_dispatch', 'wporg_require_authentication_for_rest_batch', -1000, 3 );
长亭应急响应实验室已通过无锋元刃成功复现此漏洞

原文始发于微信公众号(HACK之道):【已复现】无需账号、默认配置即可 getshell——WordPress Core 远程代码执行漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-


评论