Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nginx for openSUSE:Factory checked 
in at 2021-06-02 22:10:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nginx (Old)
 and      /work/SRC/openSUSE:Factory/.nginx.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nginx"

Wed Jun  2 22:10:29 2021 rev:65 rq:895782 version:1.20.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nginx/nginx.changes      2021-04-29 
22:44:54.320164316 +0200
+++ /work/SRC/openSUSE:Factory/.nginx.new.1898/nginx.changes    2021-06-02 
22:10:37.292127086 +0200
@@ -1,0 +2,10 @@
+Wed May 26 02:44:27 UTC 2021 - ???????? ???????????? <i...@ilya.pp.ua>
+
+- Update to 1.20.1
+  * https://nginx.org/en/CHANGES
+  * 1-byte memory overwrite might occur during DNS server response processing
+    if the "resolver" directive was used, allowing an attacker who is able to
+    forge UDP packets from the DNS server to cause worker process crash or,
+    potentially, arbitrary code execution (CVE-2021-23017, boo#1186126).
+
+-------------------------------------------------------------------

Old:
----
  nginx-1.20.0.tar.gz
  nginx-1.20.0.tar.gz.asc

New:
----
  nginx-1.20.1.tar.gz
  nginx-1.20.1.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nginx.spec ++++++
--- /var/tmp/diff_new_pack.7HO9hY/_old  2021-06-02 22:10:37.984127030 +0200
+++ /var/tmp/diff_new_pack.7HO9hY/_new  2021-06-02 22:10:37.988127029 +0200
@@ -23,7 +23,7 @@
 %bcond_with    ngx_google_perftools
 #
 Name:           nginx
-Version:        1.20.0
+Version:        1.20.1
 Release:        0
 Summary:        A HTTP server and IMAP/POP3 proxy server
 License:        BSD-2-Clause
@@ -83,8 +83,8 @@
 Summary:        VIM support for nginx config files
 Group:          Productivity/Text/Editors
 %requires_eq    vim
-BuildArch:      noarch
 Supplements:    (nginx and vim_client)
+BuildArch:      noarch
 
 %description -n vim-plugin-nginx
 nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor 
Sysoev.

++++++ nginx-1.20.0.tar.gz -> nginx-1.20.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.20.0/CHANGES new/nginx-1.20.1/CHANGES
--- old/nginx-1.20.0/CHANGES    2021-04-20 15:35:55.000000000 +0200
+++ new/nginx-1.20.1/CHANGES    2021-05-25 14:35:44.000000000 +0200
@@ -1,4 +1,13 @@
 
+Changes with nginx 1.20.1                                        25 May 2021
+
+    *) Security: 1-byte memory overwrite might occur during DNS server
+       response processing if the "resolver" directive was used, allowing an
+       attacker who is able to forge UDP packets from the DNS server to
+       cause worker process crash or, potentially, arbitrary code execution
+       (CVE-2021-23017).
+
+
 Changes with nginx 1.20.0                                        20 Apr 2021
 
     *) 1.20.x stable branch.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.20.0/CHANGES.ru new/nginx-1.20.1/CHANGES.ru
--- old/nginx-1.20.0/CHANGES.ru 2021-04-20 15:35:52.000000000 +0200
+++ new/nginx-1.20.1/CHANGES.ru 2021-05-25 14:35:42.000000000 +0200
@@ -1,4 +1,13 @@
 
+?????????????????? ?? nginx 1.20.1                                          
25.05.2021
+
+    *) ????????????????????????: ?????? ?????????????????????????? 
?????????????????? resolver ???? ?????????? ??????????????????
+       ???????????? DNS-?????????????? ?????????? ?????????????????????? 
???????????????????? ???????????? ?????????? ????????????,
+       ?????? ?????????????????? ????????????????????, ???????????????? 
?????????????????????? ?????????????????????? UDP-????????????
+       ???? DNS-??????????????, ?????????????? ?????????????? ???????????????? 
???????????????? ??????, ????????????????????????,
+       ???????????????????? ?????????????????????????? ???????? 
(CVE-2021-23017).
+
+
 ?????????????????? ?? nginx 1.20.0                                          
20.04.2021
 
     *) ???????????????????? ?????????? 1.20.x.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.20.0/src/core/nginx.h 
new/nginx-1.20.1/src/core/nginx.h
--- old/nginx-1.20.0/src/core/nginx.h   2021-04-20 15:35:47.000000000 +0200
+++ new/nginx-1.20.1/src/core/nginx.h   2021-05-25 14:35:38.000000000 +0200
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1020000
-#define NGINX_VERSION      "1.20.0"
+#define nginx_version      1020001
+#define NGINX_VERSION      "1.20.1"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.20.0/src/core/ngx_resolver.c 
new/nginx-1.20.1/src/core/ngx_resolver.c
--- old/nginx-1.20.0/src/core/ngx_resolver.c    2021-04-20 15:35:47.000000000 
+0200
+++ new/nginx-1.20.1/src/core/ngx_resolver.c    2021-05-25 14:35:38.000000000 
+0200
@@ -1798,6 +1798,12 @@
     i = sizeof(ngx_resolver_hdr_t);
 
     while (i < (ngx_uint_t) n) {
+
+        if (buf[i] & 0xc0) {
+            err = "unexpected compression pointer in DNS response";
+            goto done;
+        }
+
         if (buf[i] == '\0') {
             goto found;
         }
@@ -3939,11 +3945,11 @@
 {
     char        *err;
     u_char      *p, *dst;
-    ssize_t      len;
+    size_t       len;
     ngx_uint_t   i, n;
 
     p = src;
-    len = -1;
+    len = 0;
 
     /*
      * compression pointers allow to create endless loop, so we set limit;
@@ -3958,6 +3964,16 @@
         }
 
         if (n & 0xc0) {
+            if ((n & 0xc0) != 0xc0) {
+                err = "invalid label type in DNS response";
+                goto invalid;
+            }
+
+            if (p >= last) {
+                err = "name is out of DNS response";
+                goto invalid;
+            }
+
             n = ((n & 0x3f) << 8) + *p;
             p = &buf[n];
 
@@ -3986,7 +4002,7 @@
         return NGX_OK;
     }
 
-    if (len == -1) {
+    if (len == 0) {
         ngx_str_null(name);
         return NGX_OK;
     }
@@ -3998,30 +4014,23 @@
 
     name->data = dst;
 
-    n = *src++;
-
     for ( ;; ) {
+        n = *src++;
+
+        if (n == 0) {
+            name->len = dst - name->data - 1;
+            return NGX_OK;
+        }
+
         if (n & 0xc0) {
             n = ((n & 0x3f) << 8) + *src;
             src = &buf[n];
 
-            n = *src++;
-
         } else {
             ngx_strlow(dst, src, n);
             dst += n;
             src += n;
-
-            n = *src++;
-
-            if (n != 0) {
-                *dst++ = '.';
-            }
-        }
-
-        if (n == 0) {
-            name->len = dst - name->data;
-            return NGX_OK;
+            *dst++ = '.';
         }
     }
 }

Reply via email to