你的WordPress网站正对着互联网裸奔,一个连登录名和密码都不需要的匿名HTTP请求,就可能把服务器变成黑客的远程Shell。听着像恐怖片情节?但这正是安全公司Assetnote刚刚在WordPress核心代码里挖出的漏洞——他们给它起了个名字叫“wp2shell”。更刺激的是,漏洞打在WordPress最底层的骨架上,就算你一个插件都没装,用默认配置刚搭建好的站点,照样会被一击即中。
Assetnote是Searchlight Cyber旗下的攻击面管理团队,专门盯着全球最广泛部署的软件寻找那种“不设防”的攻击路径。这次,研究员Adam Kues通过WordPress在HackerOne上的漏洞赏金计划提交了成果,官方确认后迅速在7月17日发布了6.9.5和7.0.2两个修复版本,并启用了所谓的“强制更新”——也就是不管你有没有关掉自动更新,补丁都会强行推下去。也许你已经看到仪表盘里悄悄多了一行“已自动更新”的日志。
![]()
不过,在深入拆解这个漏洞之前,我们先把最重要的结论摆出来:所有运行WordPress 6.9.0到6.9.4、以及7.0.0到7.0.1的站点全部在射程内。如果你用的是6.8或更早版本,这次核心RCE倒没有影响你,但你依然需要留意另一个同一波修复里带进来的高危SQL注入,对应6.8.6更新。至于7.1 beta2,它已经含上了相同的补丁。所以,无论你走哪条版本线,尽快看一眼“工具→站点健康”里实际跑的WordPress版本,是当下唯一正确的反应。
现在,我们按发现、原理、影响和止损四个维度,把这颗“核弹级”漏洞拆开揉碎。毕竟,当一条匿名HTTP请求就能敲开服务器大门的时候,不能只靠“我好像更新了”的模糊印象过日子。
漏洞是怎么被发现的?
故事开端很安静。Adam Kues在研究WordPress的REST API时,发现批量路由处理逻辑在6.9版本之后出现了一种危险的“混淆”。他没有公开任何技术细节,只是通过HackerOne上报,并在研究博客里用“wp2shell”作为代号。按照Assetnote的说法,这个漏洞的利用“没有任何前置条件,任何一个匿名用户都可以触发”。也就是说,攻击者不需要注册账户、不需要拿到任何cookie或nonce、甚至不需要目标站点安装第三方主题或插件——只要你的站点公开可访问,并且还在允许批量请求,游戏就开始了。
为了给管理员留出足够的操作时间,Assetnote没有发布漏洞利用的技术文档,而是在wp2shell.com上线了一个在线检查器,让站长可以输入自己的域名,验证是否会被该漏洞穿透。与此同时,WordPress安全团队连夜赶制补丁,将修复文件集成到6.9.5和7.0.2中,并在版本日志里写明了漏洞类型:“REST API批量路由混淆与SQL注入组合,进而导致远程代码执行”。
REST API批量路由是什么?为什么它突然变成攻击入口?
要理解这个漏洞,需要先认识一个在WordPress生态里低调运行了快六年的功能——批量端点。从2020年11月发布的WordPress 5.6开始,核心就内建了/wp-json/batch/v1这个路由,允许客户端在一个HTTP请求中打包多条REST API指令。比如,你想同时更新一篇文章的标题、创建一个新分类、并查询最新评论,理论上可以将这三件事写进同一个JSON对象里发给服务器,服务器会依次处理并把结果一次过返回。这种设计节省了网络往返,对移动端应用和前端构建工具非常友好。WordPress官方开发者文档也一直公开
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.