草庐IT

立即升级 NGINX 以应对漏洞风险

NGINX开源社区 2024-01-22 原文
原文作者:NGINX
原文链接: 立即升级 NGINX 以应对漏洞风险
转载来源:NGINX 开源社区

今日,我们发布了针对 NGINX Plus、NGINX 开源版、NGINX 企阅版以及 NGINX Ingress Controller 的更新,以应对最近在 NGINX 模块 ngx_http_mp4_module 及 ngx_http_hls_module 中发现的漏洞—— 这两个模块用于以 MP4 以及 Apple HTTP Live Streaming (HLS) 格式进行视频流媒体处理。

基本信息

已发现的漏洞均已经上报到通用漏洞披露(CVE),F5 的安全应急小组(SIRT)也已根据通用漏洞评分系统(CVSS v3.1)对这些漏洞进行评分。

下列在 MP4 流媒体模块(ngx_http_mp4_module)中的漏洞影响到 NGINX Plus、NGINX 开源版以及 NGINX 企阅版。

  • CVE-2022-41741 (Memory Corruption) – CVSS score 7.1 (High)
  • CVE-2022-41742 (Memory Disclosure) – CVSS score 7.0 (High)

下列在 HLS 流媒体模块(ngx_http_hls_module)中的漏洞只对 NGINX Plus 产生影响。

  • CVE-2022-41743 (Memory Corruption) – CVSS score 7.0 (High)

针对以上漏洞的相关补丁包含在以下软件版本中:

  • NGINX Plus R27 P1
  • NGINX Plus R26 P1
  • NGINX 开源版 1.23.2(主线版)
  • NGINX 开源版 1.22.1(稳定版)
  • NGINX 企阅版 R2 P1
  • NGINX 企阅版 R1 P1
  • NGINX Ingress Controller 2.4.1
  • NGINX Ingress Controller 1.12.5

立即升级

所有版本的 NGINX Plus、NGINX 开源版、NGINX 企阅版以及 NGINX Ingress Controller 均受影响,故我们强烈建议您将您的软件升级到最新版本。

NGINX 开源版用户

nginx-1.22.1 稳定版和 nginx-1.23.2 主线版已发布,其中包括了针对 ngx_http_mp4_module (CVE-2022-41741, CVE-2022-41742) 中内存损坏和内存泄漏的修复补丁。

下载地址:http://nginx.org/#2022-10-19

NGINX Plus 用户

请查阅 NGINX Plus Admin Guide 中的 Upgrading NGINX Plus 一节了解升级步骤。

https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-plus/#upgrading-nginx-plus

NGINX Plus 客户还可以联系我们的售后支持团队,以获取进一步的帮助。

https://my.f5.com/

NGINX 企阅版用户

请查阅产品文档中的升级说明了解升级步骤。

https://docs.nginx-cn.net/nginx-oss-sub/installation#upgrading-nginx-open-source-subscription

NGINX 企阅版客户还可以联系我们的售后支持团队,以获取进一步的帮助。

https://my.f5.com/

漏洞信息

漏洞: CVE-2022-41741

NGINX ngx_http_mp4_module

https://support.f5.com/csp/article/K81926432

NGINX 在 ngx_http_mp4_module 中有一个漏洞,可能允许攻击者破坏 NGINX。使用特制的 mp4 文件可以损坏 worker 进程(负责流量处理)的内存,导致其终止或潜在的其他影响。该问题仅影响启用了 ngx_http_mp4_module 模块并在配置文件中使用 mp4 指令的 NGINX。此外,只有当攻击者能够触发使用 ngx_http_mp4_module 对特制 mp4 文件的进行处理时,攻击才有可能成功。

漏洞影响

一次成功的利用可能允许一个本地攻击者破坏 NGINX 的 worker 进程,导致其中止或其他潜在的影响。

缓解措施

ngx_http_mp4_module 模块为 MP4 文件提供伪流媒体的服务器侧支持,这些文件通常会使用 .mp4 .m4v 或.m4a 文件扩展名。详情请见 https://nginx.org/en/docs/http/ngx_http_mp4_module.html

注意:默认情况下, NGINX 开源版本不包含 MP4 模块,必须启用该模块才受影响。MP4 模块默认包含在 NGINX Plus 中。

综上所述,缓解措施为:只允许受信用户发布音频和视频文件,或者在 NGINX 配置中禁用 MP4 模块,直到升级至修复版本。

漏洞: CVE-2022-41742

NGINX ngx_http_mp4_module

https://support.f5.com/csp/article/K28112382

NGINX 在 ngx_http_mp4_module 中存在漏洞,这可能允许攻击者激发 worker 进程的崩溃,或者通过使用特制的 mp4 文件致使 worker 进程出现内存泄露。该问题仅影响启用了 ngx_http_mp4_module 模块(默认不启用)并在配置文件中使用 .mp4 指令的 NGINX。此外,只有当攻击者能够触发使用 ngx_http_mp4_module 对特制 mp4 文件的进行处理时,攻击才有可能成功。

漏洞影响

一次成功的利用可能允许一个攻击者破坏 NGINX 的 worker 进程,导致其中止或使其内存泄露。

缓解措施

ngx_http_mp4_module 模块为 MP4 文件提供伪流媒体的服务器侧支持,这些文件通常会使用 .mp4 .m4v 或 .m4a 文件扩展名。详情请见 https://nginx.org/en/docs/http/ngx_http_mp4_module.html

注意:默认情况下, NGINX 开源版本不包含 MP4 模块,必须启用该模块才受影响。MP4 模块默认包含在 NGINX Plus 中。

综上所述,缓解措施为:只允许受信用户发布音频和视频文件,或者在 NGINX 配置中禁用 MP4 模块,直到升级至修复版本。

漏洞: CVE-2022-41743

NGINX ngx_http_mp4_module

https://support.f5.com/csp/article/K01112063

NGINX Plus 的模块 ngx_http_hls_module 中存在一个漏洞,该漏洞可能允许本地攻击者破坏 NGINX 的工作进程内存,从而导致其崩溃或在使用特制的音频或视频文件时产生其他潜在的影响。只有当配置文件中使用 hls 指令时,该问题才会影响 NGINX Plus。

此外,只有当攻击者可以触发使用模块 ngx_http_hls_module 对特制音频或视频文件进行 处理时,攻击才有可能成功。

漏洞影响

一次成功的利用可能允许一个本地攻击者破坏 NGINX 的 worker 进程,导致其中止或其他潜在的影响。

缓解措施

ngx_http_hls_module 模块为 MP4 和 MOV 媒体文件提供 HTTP 流媒体服务器端支持。这类文件通常具有 .mp4 .m4v .m4a .mov 或 .qt 的文件名扩展名。该模块支持 H.264 视频编解码器,AAC 和 MP3 音频编解码器。详情请见 https://nginx.org/en/docs/http/ngx_http_hls_module.html

因此,只允许受信用户发布音频和视频文件。或者在 NGINX 配置中禁用 HLS 模块,直到升级至修复版本,可缓解此风险。


更多资源

想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?

请前往 NGINX 开源社区:

有关立即升级 NGINX 以应对漏洞风险的更多相关文章

  1. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  2. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  5. ruby - 在不使用 RVM 的情况下在 Mac 上卸载和升级 Ruby - 2

    我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案

  6. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  7. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  8. ruby-on-rails - 如何用不同的用户运行nginx主进程 - 2

    A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(

  9. ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0 - 2

    我们有一个目前在Rails2.3.12版和Ruby1.8.7版上运行的应用程序。我们想将我们的应用程序更新到Rails4.0和Ruby2.1.0。我们有大约200个模型和150个Controller。我想知道升级过程需要多大的努力。您还可以提供升级可以遵循的步骤。我们应该先升级Ruby然后再升级Rails还是相反? 最佳答案 您想要实现的目标将是史诗般的努力。我无法为您提供分步说明,因为不可能在一个答案中涵盖所有情况。我建议不要同时升级Ruby和Rails,而是分步升级。升级本身的复杂性是巨大的,但只要您的应用程序具有合理的测试覆盖

  10. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

随机推荐