今天有站长在群里问:我这台机器开了 Brotli 压缩,要不要现在就关掉。先给结论——不用急着关,先确认你这台机器在不在受影响的那一类。据公开报道,Google 开源压缩库 Brotli 存在越界写入漏洞,编号 CVE-2026-111497,攻击者用特制的压缩数据就能触发内存破坏,后果是阻断服务或者信息泄漏,.NET、PHP 与 Linux 已陆续修补。
同一时间还有一条对运维更麻烦的消息:漏洞悬赏计划 ZDI 的成员不慎公开了尚未修补的 Linux 内核漏洞。上周 PHP 重大漏洞 PHP2Shell 在协调修补之前就被曝光,接着又来一例。对我们这种给客户做站的小团队来说,要改的不只是某一个补丁,是等教程、等镜像那几天得压短。

哪几台机器在风险面里?
漏洞在解压不可信数据时触发,判断标准就一条:谁的进程会把外部传进来的 Brotli 数据解开,谁先处理。宝塔面板上跑的纯静态站、WordPress主题 前台,通常是把页面压出去给浏览器,入口是只读的,这类可以往后排。真正要紧的是会收压缩数据的:上传接口、反向代理转发、跑 Node.js 的 API 服务、SSR 渲染。据公开报道,安全厂商 Imperva 的 Node2Shell 研究证实,在特定条件下攻击者可利用受影响的 Node.js 版本远程执行代码,这对做建站源码和接口对接的人来说,等级比单纯的拒绝服务高。
先摸底再决定动作,别猜:
- 看 Web 服务装没装 Brotli 模块:nginx -V 2>&1 | grep -i brotli
- 看 PHP 有没有挂 brotli 扩展:php -m | grep -i brotli
- 看系统库版本:dpkg -l | grep brotli,RedHat 系用 rpm -qa | grep brotli
- 看 Node.js 项目里有没有直接或间接用到 Brotli 解压:npm ls brotli
要不要直接关掉压缩?
不少客户会问:我把 br 关掉不就安全了。能关,但代价先算清楚。关掉 Brotli 之后静态资源体积会上去,流量费和首屏时间跟着涨;带宽按流量计费的机器,尤其用户在境外、走国际线路的业务,这笔钱看得见。反过来,如果你的站纯静态、缓存命中高、页面本来就小,关掉几乎无感,那这就是个低成本的临时挡法。
取舍大概是三条路:能升级就升级,把发行版仓库里的 brotli 相关组件、PHP、.NET 运行时按官方公告给出的修复版本升上去,别自己编译替换库;暂时升不了的,先收入口,关掉不需要的解压入口、对上传接口限速,必要时用 WAF 规则挡异常压缩体;跑 Node.js 的服务单独拎出来处理,远程执行代码的风险和拒绝服务不是一个量级。压缩本身不是错,把信任边界画错才是。用 HTML模板 时配合缓存策略把资源压小,比全站关掉压缩划算。
补丁还没跟上,先做哪几步?
先处理公网入口、会解压外部数据的那几台,其余排进下一个维护窗口。Linux 内核漏洞提前公开,意味着留给我们的修补时间窗被压短了,等别人把踩坑笔记写全再动手,往往已经晚了。
- 盘点:把上面那几条命令在每台机器跑一遍,输出留档。
- 分优先级:公网可达、处理上传和代理的先动,内网机器和纯展示站后排。
- 备份再动:数据库与站点目录先备份,确认能恢复,再升级。
- 挑低峰窗口升级,打完重点验证上传、反向代理、接口签名这几处。
升级命令按发行版走就行,apt 升级、yum update 之后重启相关服务,具体修复版本以发行版和官方公告为准。我不在这儿给版本号——给早了反而误导,等仓库里出现对应版本再动。
客户常问:我这台服务器要不要现在换一台?
不用。漏洞在软件层,换机器不解决问题——你换到香港服务器或者别的节点,跑的还是同一套 Brotli、PHP 与 Linux 内核。真要换,理由应该是线路和延迟,不是这条漏洞。日常的 WordPress主题怎么安装、DedeCMS模板修改、宝塔面板建站教程 这些步骤,站内都有图文,配合这次的排查清单一起看更顺。
先把手上几台机器的命令输出跑出来,该升的排进本周窗口,剩下的记进待办。这份清单比收藏一百篇分析有用。
