最近 PHP 爆出两个重大漏洞,编号是 CVE-2026-109618 和 CVE-2026-109619,安全圈把它们合称为 PHP2Shell:
- CVE-2026-109618:OOM 内存耗尽路径上的异常处理缺陷
- CVE-2026-109619:请求全局状态残留导致的释放后重用(UAF)
两个都是 CVSS 9.2 分,未经身份验证就能远程触发,最坏情况是服务器被完全接管。国内大约七成站点跑在 PHP 上,即便其中只有一部分升不动级,也是一个百万量级的暴露面。
各大云厂商连夜发了通告,官方补丁也已经放出——8.2.35 / 8.3.36 / 8.4.27 / 8.5.12,看到自己版本号比这几个小就是没修。但现实是,很多网站并不能当天升级:有人不懂怎么升,有人升完发现插件不兼容、站点白屏,还有人用的面板根本没推新版。
这种情况下,先用 WAF 挡住是最省事的办法。百度云防护已经紧急上线了针对 PHP2Shell 的防护规则,编号 Code_exec.CVE-2026-109618.A,操作只要三分钟。
一、加规则的具体操作
进入 百度云防护控制台 → 防护配置 → WEB 防护 → 新增基础防护规则,然后按下表填写:
| 配置项 | 填什么 | 说明 |
| 模板名称 | 基础防护(名字随意) | 只是给这套规则起个标识,不影响效果 |
| 处置动作 | 拦截 | 不要选「观察」,观察只记录不阻断 |
| 规则组 | 高级策略集(严格) | PHP2Shell 防护规则就在这个策略集里 |
最后选择需要防护的站点,确定即可。规则立即生效,不需要重启任何服务。

二、怎么确认真的生效了
配完不算完,得能看见它在干活。回到控制台的攻击详情/Web基础防护,搜索规则 ID 4645:
- 搜到记录 → 说明规则在工作,已经有人来探过
- 完全没有记录 → 要么站点确实没被扫,要么规则没挂到正确的站点上,回去检查一下防护站点的选择
主机吧查了百度云防护的拦截记录:10 月 22 日规则上线当天,就已经有拦截日志了。漏洞编号在 10 月 20 日就已经在论坛流传,等于细节一公开,扫描器就跟着上来了——没有所谓的「先观察几天再动手」的缓冲期。

三、给站长的忠告
如果你是小网站,没有专业的安全维护人员,最好的办法就是给网站套一层靠谱的WAF。利用WAF服务商的高危0day漏洞极速更新能力,来替你挡住第一波攻击。
比如百度智能云这次,安全漏洞被爆仅12小时就上线了基础防护策略,这种响应速度是极其关键的。
千万不要用一些缺乏维护的小厂WAF! 很多小厂的安全规则库几年都没更新过,底层漏洞防不住,形同虚设。一旦被拖库,损失的根本不是几百块钱的事。
四、小网站该怎么选 WAF
如果你没有专职的安全人员,把「盯漏洞」这件事外包给 WAF 厂商是合理的。但选的时候别只看价格,看三件事:
- 规则更新频率 —— 高危 0day 出来后多久能上线规则?这次百度智能云从补丁发布到规则上线用了大约 12 小时,这个速度在国内属于快的。
- 能不能看到命中日志 —— 只有「已拦截」三个字、看不到具体命中了哪条规则的产品,出事时帮不上你排查。
- 规则库有没有在维护 —— 有些低价 WAF 的规则库好几年没动过,面对新漏洞基本等于没有防护。这一点在采购前问一句「最近一次规则更新是什么时候」就能试出来。
按这三条去筛,小厂产品会自然被排除掉,不用谁来劝。
五、最后
漏洞会一直有,区别只在于:有没有人在你睡觉的时候替你盯着 CVE。
专业团队守着的 WAF,价值就在这段时间差里。对一个人管站的站长来说,花三分钟加一条规则,比熬夜研究怎么给 PHP 打补丁要现实得多——先把门关上,升级的事明天再说。
