近日 nginx 被爆出存在安全问题,有可能会致使 1400 多万台服务器易遭受 DoS 攻击。而导致安全问题的漏洞存在于 HTTP/2 和 MP4 模块中。nginx Web 服务器于11月6日发布了新版本,用于修复影响 1.15.6, 1.14.1 之前版本的多个安全问题,被发现的安全问题有一种这样的情况 —— 允许潜在的攻击者触发拒绝服务(DoS)状态并访问敏感的信息。
“在 nginx HTTP/2 实现中发现了两个安全问题,这可能导致过多的内存消耗(CVE-2018-16843)和CPU使用率(CVE-2018-16844)”,详见 nginx 的安全建议。
此外,“如果在配置文件中使用”listen”指令的”http2″选项,则问题会影响使用 ngx_http_v2_module 编译的 nginx(默认情况下不编译)。”
为了利用上述两个问题,攻击者可以发送特制的 HTTP/2 请求,这将导致过多的CPU使用和内存使用,最终触发 DoS 状态。
所有运行未打上补丁的 nginx 服务器都容易受到 DoS 攻击。
第三个安全问题(CVE-2018-16845)会影响 MP4 模块,使得攻击者在恶意制作的 MP4 文件的帮助下,在 worker 进程中导致出现无限循环、崩溃或内存泄露状态。
最后一个安全问题仅影响运行使用 ngx_http_mp4_module 构建的 nginx 版本并在配置文件中启用 mp4 选项的服务器。
总的来说,HTTP/2 漏洞影响 1.9.5 和 1.15.5 之间的所有 nginx 版本,MP4 模块安全问题影响运行 nginx 1.0.7, 1.1.3 及更高版本的服务器。
为缓解这两个安全问题,服务器管理员必须将其 nginx 升级到 1.14.1 stable 或1.15.6 主线版本。
目前,Shodan 搜索显示超过 1400 万台服务器运行未包含修复补丁的 nginx 版本(更确切地说是 14,036,690 台),仅有 6992 台服务器打上了安全补丁。
nginx-1.14.1 稳定版和nginx-1.15.6主线版本已经发布,修复了HTTP/2(CVE-2018-16843,CVE-2018-16844)和MP4模块(CVE-2018-16845)中的漏洞。
nginx 1.14.1更改
*)安全性:使用HTTP/2时,客户端可能会导致过多的内存消耗(CVE-2018-16843)和CPU使用率(CVE-2018-16844)。
*)安全性:使用ngx_http_mp4_module处理特制的mp4文件可能会导致工作进程内存泄露CVE-2018-16845)。
*)修正:使用gRPC后端可能会导致过多的内存消耗。
nginx 1.15.6的变化
*)安全性:使用HTTP/2时,客户端可能会导致过多的内存消耗(CVE-2018-16843)和CPU使用率(CVE-2018-16844)。
*)安全性:使用ngx_http_mp4_module处理特制的mp4文件可能会导致工作进程内存泄露(CVE-2018-16845)。
*)功能:“proxy_socket_keepalive”,“fastcgi_socket_keepalive”,“grpc_socket_keepalive”,“memcached_socket_keepalive”,“scgi_socket_keepalive”和“uwsgi_socket_keepalive”指令。
*)修正:如果nginx是使用OpenSSL 1.1.0构建的并与OpenSSL1.1.1一起使用,则始终启用TLS 1.3协议。
*)修正:使用gRPC后端可能会导致过多的内存消耗。
更多发行说明和下载地址:http://nginx.org/en/download.html