近日nginx被爆出存在安全问题,有可能会致使1400多万台服务器易遭受DoS攻击。而导致安全问题的漏洞存在于HTTP/2和MP4模块中。nginxWeb服务器于11月6日发布了新版本,用于修复影响1.15.6,1.14.1之前版本的多个安全问题,被发现的安全问题有一种这样的情况——允许潜在的攻击者触发拒绝服务(DoS)状态并访问敏感的信息。
在nginxHTTP/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模块安全问题影响运行nginx1.0.7,1.1.3及更高版本的服务器。
为缓解这两个安全问题,服务器管理员必须将其nginx升级到1.14.1stable或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)中的漏洞。
nginx1.14.1更改
*)安全性:使用HTTP/2时,客户端可能会导致过多的内存消耗(CVE-2018-16843)和CPU使用率(CVE-2018-16844)。
*)安全性:使用ngx_http_mp4_module处理特制的mp4文件可能会导致工作进程内存泄露CVE-2018-16845)。
*)修正:使用gRPC后端可能会导致过多的内存消耗。
nginx1.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是使用OpenSSL1.1.0构建的并与OpenSSL1.1.1一起使用,则始终启用TLS1.3协议。
*)修正:使用gRPC后端可能会导致过多的内存消耗。