基于补丁方式修复 nginx漏洞 缓冲区错误漏洞(CVE-2022-41741)、越界写入漏洞(CVE-2022-41742)

本文主要是介绍基于补丁方式修复 nginx漏洞 缓冲区错误漏洞(CVE-2022-41741)、越界写入漏洞(CVE-2022-41742),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

nginx1.22.0版本漏洞 CVE-2022-41741 、CVE-2022-41742

漏洞描述

1、nginx 缓冲区错误漏洞(CVE-2022-41741)

此插件基于版本检测,有可能误报,未开启 MP4 模块的nginx属于误报,请忽略该漏洞。Nginx是美国Nginx公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 Nginx在 ngx_http_mp4_module 中存在漏洞,这可能允许攻击者激发 worker 进程的崩溃,或者通过使用特制的 mp4 文件致使 worker 进程出现内存泄露。该问题仅影响启用了 ngx_http_mp4_module 模块(默认不启用)并在配置文件中使用 .mp4 指令的 NGINX。此外,只有当攻击者能够触发使用 ngx_http_mp4_module 对特制 mp4 文件的进行处理时,攻击才有可能成功。

2、nginx 越界写入漏洞(CVE-2022-41742)

此插件基于版本检测,有可能误报。Nginx是美国Nginx公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
Nginx Plus 的模块 ngx_http_hls_module 中存在一个漏洞,该漏洞可能允许本地攻击者破坏 NGINX 的工作进程内存,从而导致其崩溃或在使用特制的音频或视频文件时产生其他潜在的影响。只有当配置文件中使用 hls 指令时,该问题才会影响 Nginx Plus。
此外,只有当攻击者可以触发使用模块 ngx_http_hls_module 对特制音频或视频文件进行 处理时,攻击才有可能成功。一次成功的利用可能允许一个本地攻击者破坏 NGINX 的 worker 进程,导致其中止或其他潜在的影响。

官方文档

https://mailman.nginx.org/pipermail/nginx-announce/2022/RBRRON6PYBJJM2XIAPQBFBVLR4Q6IHRA.html

解决方式

解决方式一 通过升级nginx版本解决

1. 受影响的版本 nginx 1.1.3+, 1.0.7+
2. 修复的版本为 1.23.2, 1.22.1
所以通过升级版本可以修复这两个漏洞

解决方式二 通过补丁方式修复漏洞

1. 官方给出的补相丁下载地址
http://nginx.org/download/patch.2022.mp4.txt
2. 打开补丁文件 获取补丁信息 ,然后找到安装的nginx的源码, 按补丁描述将src/http/modules/ngx_http_mp4_module.c 文件下载到本地进行修改
以下为补丁部分信息截图

在这里插入图片描述

该补丁文件为一个git差异文件

  • 第一行 diff --git src/http/modules/ngx_http_mp4_module.c src/http/modules/ngx_http_mp4_module.c 表示有差异的文件的路径
  • 第二行 和第三行 表示漏洞发生的文需要修改的文件
  • 第四行 @@ -1121,6 +1121,12 @@ ngx_http_mp4_read_ftyp_atom(ngx_http_mp4
    其中 @@ -1121,6 +1121,12 @@ 表示修复前的漏洞位置在1121行的后6行,
    修复后的位置为1121行起后12行
    修改示例:
    补丁描述截图

在这里插入图片描述

修复前截图

在这里插入图片描述
修复后截图
在这里插入图片描述
修复后 自己可以数一下 看看是否和补丁文档中描述的修改后的位置相符
注意:需要添加的部分为+号部分,+号前后部分的内容是为确定位置上下文对比用的,我们复制完+号部分的内容后,可以根据给定的行号位置检查修改的位置是否正确,复制漏洞文件需要删除+号(+表示新增)
补丁文件越往后 @@ @@中的修改前 及修改后的行号位置相差很大,这是由于我们修改从上往下修改,前面变动的内容会影响到后面内容的原始位置,所以我们修改过程越往后 越需要用后面修改后的超始位置去定位 例:@@ -1862,6 +1906,12 @@ 这个中 1862的位置是说这个文件在原始未变动时的位置,随着我们从下往下修改,轮到修改到这个差异时,此时这个位置就变成了1906

  • 第四行@@ -1121,6 +1121,12 @@ ngx_http_mp4_read_ftyp_atom(ngx_http_mp4
    其中 ngx_http_mp4_read_ftyp_atom(ngx_http_mp4 表示要修改的函数名
3. 当按补丁文件修改完后,将修改后的文件替换掉源码中的src/http/modules/ngx_http_mp4_module.c 文件
4. 进行到nginx安装目录下 一般为/usr/local/nginx/sbin下,执行 ./nginx -V命令

在这里插入图片描述

5. 通过nginx -V 获取到configure arguments 后面的参数,然后进行到nginx源码路径下

在这里插入图片描述

5. 执行命令

./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src --with-http_stub_status_module --with-http_ssl_module
其中 ./configure 后面的参数就是为 nginx -V 获取到configure arguments参数

6. 执行编绎命令 make
**注意:不要make install,不然会覆盖现有的安装路径下的文件**
7. 编译成功后会生成一个objs目录,进行objs目录,拷贝nginx 替换掉原来的nginx安装路径下sbin中的nginx,注意:复制前记录先备份原有的文件,且需要先停止运行nginx
/usr/local/nginx/sbin/nginx -s stop
cp nginx /usr/local/nginx/sbin
8.替换完成后 启动nginx即可

/usr/local/nginx/sbin/nginx

这篇关于基于补丁方式修复 nginx漏洞 缓冲区错误漏洞(CVE-2022-41741)、越界写入漏洞(CVE-2022-41742)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830845

相关文章

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re