Nginx修復漏洞打補丁過程
阿新 • • 發佈:2020-07-01
漏洞報告
最近收到安全部門的安全掃描報告。內容如下:
nginx 安全漏洞(CVE-2018-16845) 中危 nginx類 nginx是由俄羅斯的程式設計師Igor Sysoev所開發的一款輕量級
Web伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
Nginx 1.15.5及之前的版本和1.14.1版本中的ngx_http_mp4_module元件存在記憶體洩露漏洞,
該漏洞源於程式沒有正確處理MP4檔案。遠端攻擊者可利用該漏洞獲取敏感資訊或造成拒絕服務。
廠商補丁: 目前廠商已釋出升級補丁以修復漏洞,補丁獲取連結:
http://mailman.nginx.org/pipermail/nginx-announce/2018/000221.html
一個高危漏洞,趕緊網上查詢下資料這準備修復。
修復過程
去補丁地址獲取補丁,可以看到這個內容:
Patch for the issue can be found here: http://nginx.org/download/patch.2018.mp4.txt
點選獲取檢視補丁資訊:
--- src/http/modules/ngx_http_mp4_module.c +++ src/http/modules/ngx_http_mp4_module.c @@ -942,6 +942,13 @@ ngx_http_mp4_read_atom(ngx_http_mp4_file atom_size = ngx_mp4_get_64value(atom_header + 8); atom_header_size = sizeof(ngx_mp4_atom_header64_t); + if (atom_size < sizeof(ngx_mp4_atom_header64_t)) { + ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0, + "\"%s\" mp4 atom is too small:%uL", + mp4->file.name.data, atom_size); + return NGX_ERROR; + } + } else { ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0, "\"%s\" mp4 atom is too small:%uL",
第一行和第二行表示漏洞發生的文需要修改的檔案
第三行表示修復前的漏洞位置在942行的後6行,942,13為補丁新增的位置到第13行
真正需要新增的部分為+號部分,複製定漏洞檔案需要刪除+號(+表示新增)
接著去nginx的啟動資料夾,檢視編譯引數資訊:
./nginx -V
得到如下資訊:
nginx version: nginx/1.11.5 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.0.1c 10
May 2012 TLS SNI support
enabled configure arguments:--prefix=/app/nginx/nginx
--with-pcre=/app/nginx/soft/pcre-8.35
--with-zlib=/app/nginx/soft/zlib-1.2.8
--with-openssl=/app/nginx/soft/openssl-1.0.1c
--with-http_ssl_module
--with-http_realip_module
需要用到的內容為configure arguments:後的內容
去nginx原始碼目錄編譯
cd nginx-1.11.5 && ./configure --prefix=/app/nginx/nginx
--with-pcre=/app/nginx/soft/pcre-8.35
--with-zlib=/app/nginx/soft/zlib-1.2.8
--with-openssl=/app/nginx/soft/openssl-1.0.1c
--with-http_ssl_module
--with-http_realip_module && make
注意:不要make install,不然會覆蓋現有的
等待編譯成功後會生成一個objs目錄,進入目錄
cd objs
複製編譯生成的可執行檔案到原先的nginx的sbin目錄
cp nginx /app/nginx/nginx/sbin
注意,複製前建議先備份原有的sbin檔案
切換程序:
make upgrade
或者去替換的sbin目錄
./nginx -s reload
原文:https://www.ucloud.cn/yun/40589.html