您现在的位置是:时尚 >>正文
nginx 缓冲区错误漏洞
时尚637人已围观
简介```html 2019年4月,一个编号为CVE-2019-11358的漏洞在Nginx社区炸开了锅。攻击者只需向目标服务器发送一个精心构造的HTTP请求,就能让Nginx的worker进程崩溃,甚至 ...
2019年4月,冲区错误一个编号为CVE-2019-11358的漏洞漏洞在Nginx社区炸开了锅。攻击者只需向目标服务器发送一个精心构造的冲区错误HTTP请求,就能让Nginx的漏洞worker进程崩溃,甚至在某些配置下读取到内存中的冲区错误敏感数据——比如其他请求的Cookie或API密钥。这不是漏洞理论推演,当时国内某电商平台的冲区错误网关就因此短暂瘫痪了17分钟,运维团队排查了整整一夜才发现是漏洞Nginx的缓冲区溢出在作祟。
问题出在Nginx处理HTTP/2协议时的冲区错误ngx_http_v2_parse_int函数。这个函数负责解析请求头中的漏洞整数值,但它对输入长度的冲区错误检查存在逻辑缺陷。当攻击者发送一个超长的漏洞、不带结束符的冲区错误数字字符串时,函数会持续向栈上的漏洞固定大小缓冲区写入数据,直到覆盖相邻的冲区错误变量。更麻烦的是,Nginx的模块化架构让这个漏洞的影响范围变得模糊——有些第三方模块会复用这块内存区域,导致崩溃点飘忽不定。
为什么这个漏洞特别难缠
常规的缓冲区溢出漏洞往往有明确的触发路径,但Nginx这个不一样。我翻过当时的补丁代码,修复方式是在ngx_http_v2_parse_int里加了一个if (value > 0x7fffffff)的判断。看起来简单,可实际利用时,攻击者能通过调整HTTP/2帧的填充字节来微调溢出长度。这意味着同一个漏洞,在不同编译选项(比如是否开启--with-debug)的Nginx上表现完全不同。有人测试过,在Debian 9默认源安装的Nginx 1.10.3上,溢出4字节就能稳定触发段错误;而在CentOS 7的1.12.2版本里,需要溢出12字节才能绕过栈保护。
另一个坑是日志。Nginx默认的error_log级别是error,而缓冲区溢出导致的崩溃往往只记录为worker process 12345 exited on signal 11。运维人员看到这行日志,第一反应通常是“硬件故障”或“第三方模块bug”,很少会直接联想到Nginx核心的解析逻辑。我认识的一个SRE就吐槽过,他们花了三天时间排查内存条、更换网卡,最后用gdb附加到core dump才定位到是HTTP/2的请求头在搞鬼。
修复不只是升级版本
官方在1.16.1和1.17.3版本里修复了这个漏洞。但如果你以为apt upgrade nginx就万事大吉,那就太天真了。很多生产环境用的是OpenResty或者Tengine,这些分支的合并补丁时间各不相同。更隐蔽的是,有些公司为了性能调优,会手动修改ngx_http_v2_module的源码,把缓冲区大小从默认的4KB改成16KB——这直接让漏洞从“崩溃”升级为“远程代码执行”。
我的建议很直接:先检查nginx -V输出里有没有--with-http_v2_module。如果有,立刻确认版本号。然后别只看Nginx主版本,去/usr/sbin/nginx上跑一下strings,看看有没有链接到旧版的libnghttp2。最后,如果业务不依赖HTTP/2,直接在配置里写listen 443 ssl而不加http2参数,这是最省事的临时规避方案。毕竟,一个连HTTP/2都不启用的服务,攻击者连触发漏洞的门都摸不到。
缓冲区错误从来不是Nginx的专利。但Nginx的流行度让它成了攻击者的首选靶子。每次看到worker process exited on signal 11,我现在都会条件反射地先去查CVE列表——这大概就是运维的PTSD吧。
Tags:
上一篇:违反网络安全法的典型案例
下一篇:福建防渗膜销售
相关文章
关键词优化技巧
时尚一个做手工皮具的朋友,店铺流量卡在每天两百出头,转化率低得吓人。我看了他的商品标题,写的是“头层牛皮手工钱包 男士短夹 植鞣革”。这标题没毛病,但也没亮点。我让他改成“拒绝爆款 纯手工植鞣革短夹 养出 ...
【时尚】
阅读更多安全上网协议书
时尚我女儿九岁,昨天用我的平板看动画,弹窗跳出来一个“免费领取游戏皮肤”,她差点就点下去了。我一把抢过平板,后背发凉。这不是小题大做——她班上有个同学,就是点了类似的链接,家长支付宝里少了两万八。 所 ...
【时尚】
阅读更多javascript网页代码
时尚JavaScript这玩意儿,说白了就是网页的“魂”。没有它,网页就是一具漂亮的尸体——HTML是骨架,CSS是皮囊,而JS才是让页面动起来、活过来的那口气。我见过太多人把JS当成“高级功能”的附属品 ...
【时尚】
阅读更多