报告编号:B6-2018-110901
报告来源:360-CERT
报告作者:360-CERT
更新日期:2018-11-09
事件背景
Nginx 11月6日的安全更新中,修补了三个可导致拒绝服务的漏洞:CVE-2018-16843,CVE-2018-16844和CVE-2018-16845。位于nginx HTTP/2 模块和流媒体MP4模块。
CVE-2018-16843,CVE-2018-16844漏洞存在于ngx_http_v2模块之中(默认情况下不编译,编译时需要开启--with-http_v2_module,同时将listen http2添加到配置文件中),当用户添加http2支持时,攻击者可以发送特制的HTTP/2请求,消耗CPU和内存资源,最终导致DoS。
CVE-2018-16845漏洞存在于ngx_http_mp4_module模块中,当用户对Nginx添加MP4流媒体支持,恶意的MP4文件会导致处理进程无限循环、崩溃或者内存泄露。
影响范围
CVE-2018-16843,CVE-2018-16844影响版本:
Mainline version :1.9.5 - 1.15.5
CVE-2018-16845 影响版本:
Mainline version :1.1.3+, 1.0.7+
补丁分析
修复建议
关闭http/2请求处理和MP4流媒体支持,强烈建议将Nginx 升级至1.15.6,或1.14.1 stable 最新版本。
升级Nginx
查看当前版本信息及配置参数:
sudo /usr/local/nginx/sbin/nginx -V
image.png
本人配置了监控及SSL的,根据实际配置进行修改。
--with-http_stub_status_module --with-http_ssl_module
下载安装包
cd /usr/local/
wget [http://nginx.org/download/nginx-1.14.1.tar.gz](http://nginx.org/download/nginx-1.14.1.tar.gz)
tar zxvf nginx-1.14.1.tar.gz
cd nginx-1.14.1.tar.gz
开始编译nginx
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module
image.png
编译nginx,添加http_v2模块应用
编译完成后,执行make,但不执行make install
make
image.png
备份
将旧版本的nginx二进制文件,重命名一个名字,在这期间,当前运行的nginx进程不会停止,不影响应用运行。
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx20181113.old
然后将上一步通过make编译好的新版nginx二进制文件,拷贝到运行目录
cp ./objs/nginx /usr/local/nginx/sbin/nginx
执行更新
在源码目录根目录下(/usr/local/nginx-1.14.1),执行更新安装命令:
make upgrade
注意:如果原来的相关配置文件中,写有和ssl有关的配置信息,需要先暂时注释掉,否则更新时会报错。
更新完成
更新完成后,执行
nginx -V
image.png
可以看到nginx已经更新到1.14.1版本。
备注:个人博客同步至简书。
网友评论