Nginx敏感信息泄露漏洞(CVE-2017-7529)
2017年7月11日,為了修復整數溢出漏洞(CVE-2017-7529), Nginx官方發布了nginx-1.12.1 stable和nginx-1.13.3 mainline版本,並且提供了官方patch。
當使用Nginx並且開啟緩存功能時,攻擊者可以構造特定header頭字段,能越界讀取到緩存文件的文件頭信息。文件頭信息中可能會包含Nginx代理站點的真實IP,造成敏感信息泄露。
另外,一些第三方模塊可能會因此導致拒絕服務或者當前進程的內存泄漏,但Nginx官方暫未發現這樣的第三方模塊。
此漏洞涉及了nginx 0.5.6 - 1.13.2全版本
此漏洞需要在Nginx用作代理緩存的情況下才能觸發,如基於Nginx的CDN服務等。
修復方式:
1、升級Nginx到最新無漏洞版本,當前1.13.3,1.12.1版本中已修復了這個問題。
2、臨時方案:配置 max_ranges 1;
3、使用百度雲加速WAF防火墻進行防禦。
4、添加網站至安全指數,及時了解網站組件突發/0day漏洞。
本篇隨筆采用第一種修復方式修復此漏洞
從官網上下載nginx-1.13.3.tar.gz,然後上傳到centos7服務器
解壓nginx-1.13.3.tar.gz
tar zxvf nginx-1.13.3.tar.gz
進入nginx-1.13.3目錄
cd nginx-1.13.3
查看nginx原來的配置
nginx -V
執行configure命令,後面跟上原來nginx的配置
報錯
改為(有關dynamic去掉)
在執行一次
這次沒有提示error, 執行make令命編譯nginx, 編譯好以後objs目錄下多出一個nginx文件,這個就是已編輯好的nginx程序
在執行configure時可能碰到的幾個錯誤:
1. rewrite需要pcre支持, 錯誤提示:./configure: error: the HTTP rewrite module requires the PCRE library.
yum -y install pcre-devel
2.openssl導致的錯誤
yum -y install openssl openssl-devel
執行make令命編譯nginx, 編譯好以後objs目錄下多出一個nginx文件,這個就是已編輯好的nginx程序
make
更改舊的nginx程序的名子,並復制新的程序過去,我的舊nginx程序放在/usr/sbin/目錄中
mv /usr/sbin/nginx /usr/sbin/nginx-bak cp objs/nginx /usr/sbin/nginx /usr/sbin/nginx -t
執行下面的命令來升級nginx
make upgrade
查看nginx版本
nginx -V
Nginx敏感信息泄露漏洞(CVE-2017-7529)