您现在的位置是:烟消火灭网 > 焦点

nginx越界写入漏洞

烟消火灭网2026-10-17 07:44:19【焦点】4人已围观

简介Nginx又曝出越界写入漏洞,这次是CVE-2025-1974。攻击者不需要认证,只要构造一个特制的HTTP请求,就能在worker进程里触发内存越界写入。轻则进程崩溃,重则远程代码执行——这已经不是

Nginx又曝出越界写入漏洞,界写这次是入漏CVE-2025-1974。攻击者不需要认证,界写只要构造一个特制的入漏HTTP请求,就能在worker进程里触发内存越界写入。界写轻则进程崩溃,入漏重则远程代码执行——这已经不是界写"建议修复"的级别了,是入漏必须修。

漏洞出在HTTP/3模块。界写具体点说,入漏是界写处理QUIC连接时,对某个特定字段的入漏长度校验出了问题。代码里有个偏移量计算,界写正常情况下应该检查边界,入漏但开发者少写了一个判断条件。界写结果就是,当数据包里的某个值大于预期时,nginx会直接往内存地址后面写数据,覆盖掉相邻的内存区域。

我翻了翻官方补丁,改动就三行。三行代码的事,却能让整个服务器沦陷——这就是C语言的残酷之处。你永远不知道哪个看似无害的整数运算,会在生产环境里变成一颗定时炸弹。

受影响的版本是1.26.0到1.26.2,以及1.27.0。如果你用的是主线版1.27.x,直接升到1.27.3。稳定版用户则要升到1.26.3。别拖,真的别拖。这个漏洞的利用难度不算高,网上已经有人放出PoC的思路了,虽然还没看到完整的exp,但以nginx的普及程度,被大规模利用只是时间问题。

有意思的是,这个漏洞是Google的Project Zero团队发现的。他们不是第一次盯上nginx了,去年就报过好几个QUIC相关的问题。HTTP/3是块硬骨头,协议本身复杂,加上nginx的C代码风格偏保守,新旧代码混在一起,很容易在边界处理上出岔子。

修复也很直接——官方在补丁里加了边界检查,确保那个偏移量不会超出缓冲区范围。如果你用的是发行版自带的nginx,比如Ubuntu或Debian的,等他们的安全源更新就行。但如果你是编译安装的,就得自己动手了。别嫌麻烦,编译一次也就几分钟的事。

说实话,nginx这几年越来越重,功能堆得多,攻击面自然就大了。早年它就是个轻量级反向代理,现在连HTTP/3都上了,代码复杂度翻了好几倍。这不是说nginx不好,而是提醒我们——任何软件都有盲区,尤其是用C写的网络服务,内存安全永远是悬在头顶的那把剑。

最后提一句,如果你暂时没法升级,至少把HTTP/3关掉。在配置里注释掉listen指令的quic参数,或者干脆不启用http3模块。虽然会损失一点性能,但总比被人拿到shell强。等补丁打上了再开回来,不丢人。

很赞哦!(455)