Nginx 二十年漏洞大盘点:Rift 危机来了,赶紧打补丁!

Nginx 二十年漏洞大盘点:Rift 危机来了,赶紧打补丁!

五月 14, 2026 nginx security cve-2026-42945 nginx rift web server vulnerabilities infrastructure security buffer overflow rewrite module zero-day response production security

Nginx 漏洞藏了18年:NGINX Rift 漏洞,你得马上打补丁

老代码总有隐患,这话说烂了。但要是这个隐患窝在 Nginx 这么火的 web 服务器里,足足18年呢?

F5 刚放出补丁,修了四个 Nginx 漏洞。最狠的那个 CVE-2026-42945,被发现者 depthfirst 叫“NGINX Rift”。基础设施团队,赶紧动起来吧。

为什么这么危险?老毛病,新麻烦

来拆解下这个坑:

漏洞根源:rewrite 模块里藏了个 heap buffer overflow。从 2008 年的 0.6.27 版就开始了。那时候 Docker 还没影儿,智能手机也刚起步,大家还纠结用 Nginx 还是 Apache。

怎么攻击:黑客不用登录,随便发个精心组的 HTTP 请求就行。不用复杂链条,不用钓鱼,不偷密码。一个请求,够了。

后果多严重:没开 ASLR 的系统,直接远程执行代码,全完蛋。开了 ASLR?也别高兴太早,服务器会反复崩溃,重启 worker,DoS 稳稳的。

CVSS 分数:9.2,Critical 级别。离满分 10 只差一点。

为什么这么老的 bug 还没死?

关键问题:它咋活了20年?答案戳中软件安全痛点。

Nginx rewrite 模块用 PCRE 处理 URL 匹配。要是用无名捕获($1、$2 啥的),后面再跟 rewrite、if 或 set 指令,就容易写超堆内存。经典 buffer overflow,本该代码审查就抓出来,结果溜过去了。

这告诉我们:再牛的开源项目,再多人用,也挡不住老 bug。Nginx 全球百万服务器在跑,影响范围超大。

谁得赶紧行动

NGINX Plus 用户:R32 到 R36 版的中招。打 R32 P6 或 R36 P4 补丁。

开源版用户:1.0.0 到 1.30.0 全中枪。立马升到 1.30.1 或 1.31.0。

倒霉蛋:还卡在 0.6.27 到 0.9.7 的古董 EOL 版?F5 不修了。必须全盘升级,没商量。

暂时打不了补丁?试试这个权宜之计

正卡在变更冻结,或老依赖升级风险高?有个临时招:

rewrite 指令里,把无名捕获换成命名捕获。别用 $1、$2,用 $(?<名字>...) 这样的。不是根治,但能堵住触发路径。

举例:

# 危险写法
rewrite ^/user/([0-9]+)$ /profile?id=$1 last;

# 临时安全版
rewrite ^/user/(?<id>[0-9]+)$ /profile?id=$id last;

这只是止血,别当真药。能补丁就补。

这次还修了仨 CVE

NGINX Rift 最吸睛,但 F5 顺手修了三个:

  • CVE-2026-42946 (CVSS 8.3 High):SCGI 和 uWSGI 模块内存爆棚,特定代理配置下 DoS。
  • CVE-2026-40701 (CVSS 6.3 Medium):SSL 模块 use-after-free,某些 ssl_verify_client 和 ssl_ocsp 设置触发。
  • CVE-2026-42934 (CVSS 4.8 Medium):charset 模块越界读。

都不如 NGINX Rift 急,但下次维护别漏。

基础设施安全,几点血泪教训

这个漏洞敲醒我们:

  1. 火爆不等于刀枪不入。Nginx 到处是,还藏了18年。
  2. 老代码不是优点。时间长了,问题只会堆更多。
  3. 安全看最慢的那个。分布式环境,一台没补丁的 Nginx 就能拖垮全家。
  4. 监控不能少。就算 ASLR 挡着,DoS 也能瞬间瘫服务。

总结:别拖,赶紧补

用 Nginx 的,不管开源还是 Plus,这次补丁就是紧急任务。18年老洞、简单攻击、高危级别,优先级拉满。

这周就更新。先 staging 测试,生产别磨蹭。留洞的风险,比更新稳如老狗的 Nginx 大多了。

顺便审审配置,尤其是 rewrite 规则。检查下全网有没有老版本。安全第一,稳住!

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN