优炫安全研究院对新爆发的CVE-2017-7529 Nginx溢出漏洞发出预警通告,请广大用户注意。
1、漏洞描述
Nginx的Range filter字段中存在溢出漏洞,通过构造带有特殊HTTP协议头Range恶意请求引发这个溢出漏洞,并导致信息泄露。
2、影响程度
攻击成本 | 低 |
危害程度 | 低 |
影响范围 | Nginx 0.5.6 – 1.13.2 |
3 、漏洞分析
3.1 HTTP断点续传:Range
HTTP协议头中的Range字段允许客户端对资源进行批次请求,如果服务端资源较大,可以通过Range来并发下载;如果访问资源时网络中断,可以断点续传。
3.2 Nginx Range Multipart
Nginx对Http协议头中 Range字段支持包括Header处理和Body处理,分别用来解析客户端发送的Range Header和裁剪返回给客户端的请求数据Body。
3.3 Nginx Cache
Nginx可以作为缓存服务器,将Web应用服务器返回的内容缓存起来。如果客户端请求的内容已经被缓存,则可以直接将缓存内容返回,而无需再次请求应用服务器。
4、漏洞原理
通过构造两个Range字段,使其长度之和溢出为负数,绕过总长度的检测。这次漏洞的主要成因就是bytes-range读取的起始范围可能为负数,从而读取缓存文件头部。
5、漏洞修复
综合来说,这个漏洞是对整数溢出漏洞的利用,能够从Cache文件中获取Cache头的信息。在某些配置的情况下Cache头中会存在IP地址信息,造成信息泄露。
就Nginx模块以及常用的第三方模块本身来说,无法通过整数溢出来对内存进行操作或者远程执行。
建议升级到高版本;如果不能升级,可以在Nginx配置文件中添加max_ranges 1,从而禁用multipart range。
版权声明:本文中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属优炫软件所有,受到有关产权及版权法保护。任何个人、机构未经优炫软件的书面授权许可,不得以任何方式复制或引用本文的任何片断。
本文暂时没有评论,来添加一个吧(●'◡'●)