Nginx敏感信息泄露漏洞(CVE-2017-7529)分析

seo优化 2022-06-25 09:57www.1681989.comseo排名

今天推火专家seo博客转载来自百度安全指数的一篇关于Ngx敏感信息泄漏漏洞的分析报告,为了修复整数溢出漏洞(CVE-2017-7529), Ngx官方发布了ngx-1.12.1 stable和ngx-1.13.3 male版本,并且提供了官方patch。

2017年7月11日,Ngx官方发布最新的安全公告,在Ngx范围过滤器中发现了一个安全问题(CVE-2017-7529),通过精心构造的恶意请求可能会导致整数溢出并且不正确处理范围,从而导致敏感信息泄漏。当使用Ngx标准模块时,如果文件头从缓存返回响应,允许攻击者获取缓存文件头。在某些配置中,缓存文件头可能包含后端服务器IP地址或其他敏感信息。,如果使用第三方模块有潜在的可能导致拒绝服务。

二、漏洞描述&影响

Integer overflow the range filter

Severity: medium

当使用Ngx并且开启缓存功能时,攻击者可以构造特定header头字段,能越界读取到缓存文件的文件头信息。文件头信息中可能会包含Ngx代理站点的真实IP,造成敏感信息泄露。

,一些第三方模块可能会导致拒绝服务或者当前进程的内存泄漏,但Ngx官方暂未发现这样的第三方模块。

此漏洞涉及了ngx 0.5.6 – 1.13.2全版本。

此漏洞需要在Ngx用作代理缓存的情况下才能触发,如基于Ngx的服务等。

当缓存的设置如下时,也不会泄露后台的IP信息。


三、漏洞细节

从patch定位问题,src/http/modules/ngx_http_range_filter_module.c(range过滤模块)


官方patch了两个地方,一个避免range start 为负值,一个保护整形size不被溢出。


通过patch的文档意见函数逻辑可以看出,如果使用 bytes=-100进入if(suffix),end设置一个大于缓存文件大小的值,会导致start 为负值。


size 一直累加,size 有个判断, size 需要一个特别大的值构成size 累加为负值。

,我们可以构造 range:bytes=-xx,-xx,-xx,-xx构造成size有符号整形溢出为负值。在GDB里构造请求调试进行验证

size 累加成一个负值。

可以获取缓存文件的key。这里启用了推火网以下配置,获取不到真实的IP地址。

四、修复

1、升级Ngx到最新无漏洞版本,当前1.13.3,1.12.1版本中已修复了这个问题;

2、临时方案配置 max_ranges 1;

3、使用百度云加速WAF防火墙进行防御;

4、添加网站至安全指数,及时了解网站组件突发/0day漏洞。

上一篇:Nginx中危敏感信息泄露漏洞 下一篇:地域类型网站移动适配的seo优化技巧解析

Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by