WordPress 7.1.1 这个安全漏洞,你还在忽视?
你以为安全的评论区,其实早就被盯上了
说句实话,我们大多数人都觉得 WordPress 自带的那个 sanitization 功能挺靠谱的。wp_kses 嘛,专门干这个的,把恶意脚本、iframe 注入那些乱七八糟的东西都给你清理掉。
但 WordPress 7.1.1 告诉我们:这个想法,有点天真。
这次爆出来的,是个存储型 XSS 漏洞,就藏在评论系统里。攻击者居然能把恶意代码塞进去,而且 wp_kses 还没拦下来。吓人不?
最骚的是,这玩意儿靠的是匿名评论——就是你们网站默认开着的那种提交方式。什么管理员权限、什么特殊账号,统统不需要。一条精心构造的 payload,搭上一个没打补丁的站点,齐活。
这事儿为啥特别恶心
XSS 分两种,存储型和反射型。反射型你可能听过,但存储型才是真正的狠角色。
区别在哪?反射型那种,恶意脚本也就是过一下服务器,蹭个热度就没了。但存储型不一样——它直接写进你的数据库,在那儿扎根了。
也就是说,任何一个访客打开那篇有问题的文章,恶意脚本就自动执行一遍。Session 劫持、账号密码偷走、往访客电脑里塞病毒、把你的网站名声搞臭——全都不用人操作,打开页面就中招。
更关键的是,这次的 payload 它过了 sanitize。这才是让这事上头条的原因。
说明攻击者找到了 WordPress 处理评论 HTML 时的某个漏洞点。不是插件配错了,也不是哪个程序员偷懒了,是 WordPress 本身处理用户内容的核心逻辑有缺口。
十一个补丁,外加一个你不该忽视的回溯版本
WordPress 7.1.1 不光修了这一个 XSS。安全更新总共包了 11 个补丁,而且 WordPress 还把这波修复回溯到了 4.7 版本。
啥意思?
意味着这个漏洞要么已经被人在野外利用了,要么就是影响面大到连老版本都得修。正常情况下,WordPress 不是每次都给旧版本同步补丁的。这次搞了回溯,说明情况不简单。
还在跑 4.7 以前版本的朋友……你们现在站的地方,属于危险区。
你现在该做的事
1. 马上更新
我知道你手头有活,但这种漏洞一旦公开,用不了多久就会有人写出扫描工具满世界找没打补丁的站。别犹豫,先把这个干了。
2. 翻一翻你的评论记录
看看有没有漏网之鱼——那种看着像编码过的 JavaScript、或者 href 属性怪怪的评论。发现一个删一个,别客气。
3. 把评论审核开起来
为了省事关了?赶紧开回去。人工过一遍,比什么都管用。sanitizer 有漏洞,但人眼能看出来不对劲的地方。
4. 考虑加个 CAPTCHA
不能防住所有攻击,但能挡住一大波垃圾评论。攻击面小了,你睡觉都踏实点。
说点大的
WordPress 撑起了互联网上大概 40% 的网站。每次安全补丁一出,影响的是几百万个站。
这就是为什么攻击者爱盯着 WordPress 打。平台太大了,砸一个漏洞能砸中一大片,性价比极高。
这次事件还告诉我们一件事:sanitization 函数不是万能的。它本质上就是一堆正则和解析逻辑,总有照顾不到的边边角角。
所以纵深防御很重要。客户端的检查要做、CSP header 要配、前端输出的编码要做好——这些加起来,就是给你的站多加几层护甲。服务器端万一有个漏的,其他地方还能兜住。
别等到自己上了新闻才后悔
安全补丁不是可选项。WordPress 放出 XSS 漏洞修复的那一刻,计时器就启动了。公开披露后几个小时,网上就开始有扫描器在跑了,挨个找没更新的站。
现在就去更新。担心兼容性的话,先在测试环境跑一遍,没问题再上生产。
但别拖到明天。
你评论区里的每一个访客,都在等你把这件事办了。