IT之家 5 月 14 日消息,科技媒体 cyberkendra 昨日(5 月 13 日)发布博文,报道称 NGINX 被曝一组高危漏洞,已潜伏约 18 年,威胁全球约三分之一的网络服务器。
本次曝光的漏洞:
- CVE-2026-42945 — 9.2 Critical
- CVE-2026-42946 — 8.3 High
- CVE-2026-40701 — 6.3 Medium
- CVE-2026-42934 — 6.3 Medium
核心风险: 攻击者无需登录认证,只需发送一条特制 HTTP 请求,就能让 NGINX 工作进程崩溃;在合适条件下,还可能拿到服务器远程代码执行权限(RCE)。
漏洞原理: 最严重的 CVE-2026-42945 可追溯到 2008 年,长期存在于几乎所有标准 NGINX 构建版本中。问题出在 ngx_http_rewrite_module 的处理逻辑——某个内部标志位被设为参数转义状态后没有清掉,后续长度计算按原始字节数估算,但真正写入时却再次转义。攻击者 URI 中的 +、%、& 等字符会从 1 字节膨胀到 3 字节,导致缓冲区溢出。
depthfirst 已做出概念验证,显示在关闭 ASLR 的条件下可实现未认证 RCE。报告还提到理论方法称攻击者可通过重复请求逐步覆盖指针字节,绕过 ASLR。更麻烦的是 NGINX 的多进程架构反而给了攻击者反复试错机会:某工作进程崩溃后主进程会拉起新进程,且堆布局可能保持一致。
修复建议:
- NGINX Open Source:升级到 1.31.0 或 1.30.1
- NGINX Plus:升级到 R36 P4 或 R32 P6
- 重启服务加载修复后的二进制文件
- 临时缓解:将受影响 rewrite 规则中的未命名正则捕获改成命名捕获(不会走到有问题的转义路径)
这个漏洞影响面很大——NGINX 承载全球约 1/3 的网站,而且已存在 18 年之久。建议如果服务器有使用 NGINX rewrite 规则的尽快升级版本或采用临时缓解措施。
