SERENITY

记录一次 Wordpress 的安全漏洞

发布于 2026年8月24日 · 分类:技术

Wordpress 有丰富的插件和成熟的社区,所以上一个版本的 Blog 我把后端换成了 Wordpress。本来是觉得 Wordpress 可以为自己带来便利,虽然的确也是。但是连续两次的安全问题加上巨大的迁移成本,最终我还是换回了静态页面生成系统 Astro。

两次漏洞

  1. 去年我的主机因为 React 的严重的高危漏洞 (React2Shell:CVE-2025-55182),导致我急忙对主机进行了备份和更新,因为匆忙,直接将重要的目录直接全部打包,但没有记录原先使用的 MySQL 的版本号。结果因为 MySQL 的版本不一致导致数据恢复失败。在后来,花了一个下午的时间一个个版本排察,终于找到了正确的 MySQL 版本,才成功恢复了数据。

  2. 前几天我再一次登录 Wordpress 的管理员界面时,发现密码又不正确了(在 3 月的时候发生过一次,当时以为是自己密码记录的问题),于是打开 MySQL 恢复密码的时候发现有很多明显是机器创建的具有管理员权限的账户,怀疑 Wordpress 被入侵。于是使用 ChatGPT 排察,果然在当前的 Wordpress 7.0.1 的版本发现了一个严重的安全漏洞 (WP2Shell / CVE-2026-60137 + CVE-2026-63030),该漏洞允许攻击者通过特制的请求获取管理员权限,从而可以创建新的管理员账户。

当系统复杂度达到一定程度时,就应该视其为不可信任。Wordpress 就是一个极其复杂的系统,后端使用 PHP + MySQL 导致其臃肿庞大。再加上丰富的插件和主题,让其被入侵的可能性大大提高。

迁移到 Astro

复杂的系统加上频发的问题,让我决定放弃 Wordpress,重新回到静态页面生成系统。

在 Wordpress 之前的 Blog 一直使用 Hexo 作为生成引擎,这次用 ChatGPT 搜索了一下发现还有一个叫 Astro 的静态页面生成系统。于是我将原 Blog 备份后,再把上传的图像打包下载到了本地,创建了一个新的目录后把这些文件扔到一起,打开 deepcode (deepseek cli),告诉他我需要创建一个 Astro 的静态网站 Blog 项目,并且告诉他当前目录下已经有从 Wordpress 备份过来的数据。

大概几分钟后,网站基本的框架已经搭好了,我把原来的 Blog 停掉后,重新配置好了 Nginx 同时做好了 Blog 同步命令。配置证书和 Cloudflare 上的域名 DNS 花费了一些时间,但是在 ChatGPT 的帮助下也很快地解决。

后记

在当前 AI 的加持下,没太有必要去使用 Wordpress 这种复杂的系统了。Astro 作为一个静态页面生成系统,虽然功能不如 Wordpress 丰富,但是对于个人 Blog 来说已经足够。最重要的是,静态页面生成系统的安全性远高于动态网站系统,减少了被入侵的风险。