nginx补丁格式说明(CVE-2016-4450为例)

摘要:
注意:检查代码后发现,nginx应该将补丁集成到开发版本和稳定版本中,而历史版本不应用补丁;这意味着当前可用的开发版本和稳定版本的漏洞将被修复,而历史版本不会修复原始版本的漏洞。即使当前版本可供下载,仍然存在漏洞。

nginx安全公告地址:http://nginx.org/en/security_advisories.html

CVE-2016-4450:一个特定构造的数据包,可引发nginx引用空指针,导致nginx出错造成拒绝服务攻击。

说明:

查阅代码发现nginx应该是将补丁集成到开发版(Mainline)和稳定版(Stable)中,而历史版本(legacy)并不会将补丁打上;

也就意味着更新到当前提供下的的开发版和稳定版漏洞就修复了(比如这个CVE-2016-4450),而历史版本是不会修复漏洞的原来有漏洞的依然有漏洞即便当前提供下载。

CVE-2016-4450针对1.3.9-1.9.12版本的补丁如下(//是我加的说明):

--- src/os/unix/ngx_files.c                //表示问题产生在src/os/unix/ngx_files.c文件中,该行不要加到ngx_files.c文件
+++ src/os/unix/ngx_files.c                //表示问题要在src/os/unix/ngx_files.c文件中修改以修复,该行不要加到ngx_files.c文件中
@@ -183,6 +183,12 @@ ngx_write_chain_to_file(ngx_file_t *file  //-182,6表示修复前该处代码的位置为183行的后6行,+183,12表示修复后该处代码占183行的后12行
         /* create the iovec and coalesce the neighbouring bufs */
 
         while (cl && vec.nelts < IOV_MAX) {
+
+            if (ngx_buf_special(cl->buf)) {      //+号表示该行代码原来没有,要新加进去;修复时+号不要加到代码中
+                cl = cl->next;
+                continue;
+            }
+
             if (prev == cl->buf->pos) {
                 iov->iov_len += cl->buf->last - cl->buf->pos;

作为对比原来该处代码如下:

nginx补丁格式说明(CVE-2016-4450为例)第1张

修复后代码如下:

nginx补丁格式说明(CVE-2016-4450为例)第2张

免责声明:文章转载自《nginx补丁格式说明(CVE-2016-4450为例)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springboot 使用webflux响应式开发教程(二)ELK系列六:Logstash的Filter模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

flutter json转字符串 字符串转json

=空&&jsonStr。长度˃0){//首先将json字符串转换为jsonMapjson=jsonDecode;//将json转换为modelfinalmodel=UserInfo.fromJson;returnmodel;}returnnull;}...

PowerDesigner 15 使用技巧

1.检索PowerDesigner的调色板工具栏工具&gt;自定义大小工具栏&gt;调色板检查2。在表格工具中批量修改文本格式&gt;显示首选项&gt;选择符号中的所有项目&gt;...

微信分享之分享图片/分享图标不能显示

微信分享的分享图标/图片无法显示,主要是由于以下几个问题:1.确保分享界面调用成功,分享路径正确。2.确保共享图片的路径不使用中文或全半角字符。3.确保副本不包含敏感字符,如红包和收据。当共享接口未能成功加载时,将发生错误。在页面的前面使用隐藏的div来放置要制作缩略图的图片。记住,不能直接隐藏图片。style=“display:noen”,如果没有,则使用...

数据可视化之powerBI技巧(十四)采悟:PowerBI中自制中文单位万和亿

最令人不快的事情之一是数据单元的设置。现在让我们看看如何通过设置测量值来切换单位。需要动态选择1万元和1亿元的单位进行显示。首先,手动创建单位表,然后使用单位表中的[unit]字段生成切片器。下一步是建立销售衡量标准。销售额=总和('订单'[销售额])为了按过滤单位显示销售额,SELECTEDVALUE函数可以根据切片器选择动态更改分母。如果切片器未进行任何...

CSS躬行记(8)——裁剪和遮罩

裁剪最早是在CSS2.1时代由clip属性引入,但该属性只能应用于绝对定位的元素,并且只能裁剪成矩形。CSS3提供了强大的clip-path属性,突破了clip属性的众多限制,接下来将围绕clip-path属性展开讲解。3)裁剪路径对于复杂的形状,可以采用SVG来创建裁剪路径,实现自定义。2)替换元素的填充和定位CSS3引入了两个新属性,用于遮罩替换元素。...

PLSQL 美化规则文件详解

开始---①createtablestudent;结束;--② 美化效果是:开始——① CREATETABLESTUDENT;结束;--②...