summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Sakoman <steve@sakoman.com>2021-02-04 10:34:51 -1000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-05 08:16:32 +0000
commitab012b3b94a3369988dc4aedbc9abe958cb04bca (patch)
tree9ff5e01acb6e020a4627b2c8755dae4f091bec9b
parent9449f2276422a21d5f9b9f05fbc1d79bc1a19f83 (diff)
downloadpoky-ab012b3b94a3369988dc4aedbc9abe958cb04bca.tar.gz
glibc: update to latest release/2.32/master branchuninative-2.10
Remove patches for CVE-2019-25013 and CVE-2020-27618 since they are present in the branch now. Add both CVEs to CVE_CHECK_WHITELIST. 760e1d28782 gconv: Fix assertion failure in ISO-2022-JP-3 module (bug 27256) d3cb8f6222a aarch64: fix static PIE start code for BTI [BZ #27068] 082798622d8 __vfscanf_internal: fix aliasing violation (bug 26690) 33dc30bc838 aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831] 46e1e64fe3e elf: Pass the fd to note processing b6eae83717d elf: Move note processing after l_phdr is updated c6090dcebd1 aarch64: align address for BTI protection [BZ #26988] 610e2c51504 aarch64: Fix missing BTI protection from dependencies [BZ #26926] 4c619b3eed5 x86: Check IFUNC definition in unrelocated executable [BZ #20019] 87450ecf8a8 x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] 2b4f67c2b33 Update for [BZ #27130] fix 1a24bbd43e4 x86-64: Avoid rep movsb with short distance [BZ #27130] 0d9793e82a1 Fix buffer overrun in EUC-KR conversion module (bz #24973) 1d49bede4d8 tests-mcheck: New variable to run tests with MALLOC_CHECK_=3 050022910be iconv: Accept redundant shift sequences in IBM1364 [BZ #26224] ac0a6929c5d sh: Add sh4 fpu Implies folder 3ea24955bff struct _Unwind_Exception alignment should not depend on compiler flags 5c36293f067 resolv: Serialize processing in resolv/tst-resolv-txnid-collision 2dfa659a66f resolv: Handle transaction ID collisions in parallel queries (bug 26600) 05c025abca1 support: Provide a way to clear the RA bit in DNS server responses f688bcd83de support: Provide a way to reorder responses within the DNS test server eba0ce60588 Remove __warndecl 5337b2af4b8 Remove __warn_memset_zero_len [BZ #25399] c6e794640c3 aarch64: Add unwind information to _start (bug 26853) 70ee5e8b573 aarch64: Fix DT_AARCH64_VARIANT_PCS handling [BZ #26798] 8813b2682e4 x86: Optimizing memcpy for AMD Zen architecture. e61a8fd8fad Reversing calculation of __x86_shared_non_temporal_threshold 0b9460d22e2 sysvipc: Fix IPC_INFO and SHM_INFO handling [BZ #26636] c4aeedea598 sysvipc: Fix IPC_INFO and MSG_INFO handling [BZ #26639] 9b139b6b81a sysvipc: Fix SEM_STAT_ANY kernel argument pass [BZ #26637] 81c5484d93a AArch64: Use __memcpy_simd on Neoverse N2/V1 0f8f0ed25c1 AArch64: Improve backwards memmove performance 23482f78866 Set version.h RELEASE to "stable" (Bug 26700) 69beb5cbf85 string: Fix strerrorname_np return value [BZ #26555] fe62c4d173f intl: Handle translation output codesets with suffixes [BZ #26383] 386543bc449 NEWS: Update for [BZ #26534] fix cebc01cbfd6 x86-64: Fix FMA4 detection in ifunc [BZ #26534] (From OE-Core rev: 8d05c277c5350c4d968eb488788eac7978968ef7) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc2
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2019-25013.patch137
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2020-27618.patch91
-rw-r--r--meta/recipes-core/glibc/glibc_2.32.bb5
4 files changed, 3 insertions, 232 deletions
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index 1566056297..586b2e207e 100644
--- a/meta/recipes-core/glibc/glibc-version.inc
+++ b/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
1SRCBRANCH ?= "release/2.32/master" 1SRCBRANCH ?= "release/2.32/master"
2PV = "2.32" 2PV = "2.32"
3SRCREV_glibc ?= "3de512be7ea6053255afed6154db9ee31d4e557a" 3SRCREV_glibc ?= "760e1d287825fa91d4d5a0cc921340c740d803e2"
4SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28" 4SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28"
5 5
6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" 6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
diff --git a/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch b/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch
deleted file mode 100644
index 987e959db2..0000000000
--- a/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch
+++ /dev/null
@@ -1,137 +0,0 @@
1From ee7a3144c9922808181009b7b3e50e852fb4999b Mon Sep 17 00:00:00 2001
2From: Andreas Schwab <schwab@suse.de>
3Date: Mon, 21 Dec 2020 08:56:43 +0530
4Subject: [PATCH] Fix buffer overrun in EUC-KR conversion module (bz #24973)
5
6The byte 0xfe as input to the EUC-KR conversion denotes a user-defined
7area and is not allowed. The from_euc_kr function used to skip two bytes
8when told to skip over the unknown designation, potentially running over
9the buffer end.
10
11Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=patch;h=ee7a3144c9922808181009b7b3e50e852fb4999b]
12CVE: CVE-2019-25013
13Signed-off-by: Scott Murray <scott.murray@konsulko.com>
14---
15 iconvdata/Makefile | 3 ++-
16 iconvdata/bug-iconv13.c | 53 +++++++++++++++++++++++++++++++++++++++++
17 iconvdata/euc-kr.c | 6 +----
18 iconvdata/ksc5601.h | 6 ++---
19 4 files changed, 59 insertions(+), 9 deletions(-)
20 create mode 100644 iconvdata/bug-iconv13.c
21
22diff --git a/iconvdata/Makefile b/iconvdata/Makefile
23index 4ec2741cdc..85009f3390 100644
24--- a/iconvdata/Makefile
25+++ b/iconvdata/Makefile
26@@ -73,7 +73,8 @@ modules.so := $(addsuffix .so, $(modules))
27 ifeq (yes,$(build-shared))
28 tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \
29 tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \
30- bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4
31+ bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \
32+ bug-iconv13
33 ifeq ($(have-thread-library),yes)
34 tests += bug-iconv3
35 endif
36diff --git a/iconvdata/bug-iconv13.c b/iconvdata/bug-iconv13.c
37new file mode 100644
38index 0000000000..87aaff398e
39--- /dev/null
40+++ b/iconvdata/bug-iconv13.c
41@@ -0,0 +1,53 @@
42+/* bug 24973: Test EUC-KR module
43+ Copyright (C) 2020 Free Software Foundation, Inc.
44+ This file is part of the GNU C Library.
45+
46+ The GNU C Library is free software; you can redistribute it and/or
47+ modify it under the terms of the GNU Lesser General Public
48+ License as published by the Free Software Foundation; either
49+ version 2.1 of the License, or (at your option) any later version.
50+
51+ The GNU C Library is distributed in the hope that it will be useful,
52+ but WITHOUT ANY WARRANTY; without even the implied warranty of
53+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
54+ Lesser General Public License for more details.
55+
56+ You should have received a copy of the GNU Lesser General Public
57+ License along with the GNU C Library; if not, see
58+ <https://www.gnu.org/licenses/>. */
59+
60+#include <errno.h>
61+#include <iconv.h>
62+#include <stdio.h>
63+#include <support/check.h>
64+
65+static int
66+do_test (void)
67+{
68+ iconv_t cd = iconv_open ("UTF-8//IGNORE", "EUC-KR");
69+ TEST_VERIFY_EXIT (cd != (iconv_t) -1);
70+
71+ /* 0xfe (->0x7e : row 94) and 0xc9 (->0x49 : row 41) are user-defined
72+ areas, which are not allowed and should be skipped over due to
73+ //IGNORE. The trailing 0xfe also is an incomplete sequence, which
74+ should be checked first. */
75+ char input[4] = { '\xc9', '\xa1', '\0', '\xfe' };
76+ char *inptr = input;
77+ size_t insize = sizeof (input);
78+ char output[4];
79+ char *outptr = output;
80+ size_t outsize = sizeof (output);
81+
82+ /* This used to crash due to buffer overrun. */
83+ TEST_VERIFY (iconv (cd, &inptr, &insize, &outptr, &outsize) == (size_t) -1);
84+ TEST_VERIFY (errno == EINVAL);
85+ /* The conversion should produce one character, the converted null
86+ character. */
87+ TEST_VERIFY (sizeof (output) - outsize == 1);
88+
89+ TEST_VERIFY_EXIT (iconv_close (cd) != -1);
90+
91+ return 0;
92+}
93+
94+#include <support/test-driver.c>
95diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c
96index b0d56cf3ee..1045bae926 100644
97--- a/iconvdata/euc-kr.c
98+++ b/iconvdata/euc-kr.c
99@@ -80,11 +80,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
100 \
101 if (ch <= 0x9f) \
102 ++inptr; \
103- /* 0xfe(->0x7e : row 94) and 0xc9(->0x59 : row 41) are \
104- user-defined areas. */ \
105- else if (__builtin_expect (ch == 0xa0, 0) \
106- || __builtin_expect (ch > 0xfe, 0) \
107- || __builtin_expect (ch == 0xc9, 0)) \
108+ else if (__glibc_unlikely (ch == 0xa0)) \
109 { \
110 /* This is illegal. */ \
111 STANDARD_FROM_LOOP_ERR_HANDLER (1); \
112diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h
113index d3eb3a4ff8..f5cdc72797 100644
114--- a/iconvdata/ksc5601.h
115+++ b/iconvdata/ksc5601.h
116@@ -50,15 +50,15 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
117 unsigned char ch2;
118 int idx;
119
120+ if (avail < 2)
121+ return 0;
122+
123 /* row 94(0x7e) and row 41(0x49) are user-defined area in KS C 5601 */
124
125 if (ch < offset || (ch - offset) <= 0x20 || (ch - offset) >= 0x7e
126 || (ch - offset) == 0x49)
127 return __UNKNOWN_10646_CHAR;
128
129- if (avail < 2)
130- return 0;
131-
132 ch2 = (*s)[1];
133 if (ch2 < offset || (ch2 - offset) <= 0x20 || (ch2 - offset) >= 0x7f)
134 return __UNKNOWN_10646_CHAR;
135--
1362.27.0
137
diff --git a/meta/recipes-core/glibc/glibc/CVE-2020-27618.patch b/meta/recipes-core/glibc/glibc/CVE-2020-27618.patch
deleted file mode 100644
index bf32238357..0000000000
--- a/meta/recipes-core/glibc/glibc/CVE-2020-27618.patch
+++ /dev/null
@@ -1,91 +0,0 @@
1From 20e6c868c29f5a6121cbb88f3387bb9b884a4206 Mon Sep 17 00:00:00 2001
2From: Arjun Shankar <arjun@redhat.com>
3Date: Wed, 4 Nov 2020 12:19:38 +0100
4Subject: [PATCH] iconv: Accept redundant shift sequences in IBM1364 [BZ
5 #26224]
6
7The IBM1364, IBM1371, IBM1388, IBM1390 and IBM1399 character sets
8share converter logic (iconvdata/ibm1364.c) which would reject
9redundant shift sequences when processing input in these character
10sets. This led to a hang in the iconv program (CVE-2020-27618).
11
12This commit adjusts the converter to ignore redundant shift sequences
13and adds test cases for iconv_prog hangs that would be triggered upon
14their rejection. This brings the implementation in line with other
15converters that also ignore redundant shift sequences (e.g. IBM930
16etc., fixed in commit 692de4b3960d).
17
18Reviewed-by: Carlos O'Donell <carlos@redhat.com>
19
20Upstream-Status: Backport
21[https://sourceware.org/git/?p=glibc.git;a=commit;
22h=9a99c682144bdbd40792ebf822fe9264e0376fb5]
23
24CVE: CVE-2020-27618
25Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
26---
27 iconv/tst-iconv_prog.sh | 16 ++++++++++------
28 iconvdata/ibm1364.c | 14 ++------------
29 2 files changed, 12 insertions(+), 18 deletions(-)
30
31diff --git a/iconv/tst-iconv_prog.sh b/iconv/tst-iconv_prog.sh
32index 8298136b7f..d8db7b335c 100644
33--- a/iconv/tst-iconv_prog.sh
34+++ b/iconv/tst-iconv_prog.sh
35@@ -102,12 +102,16 @@ hangarray=(
36 "\x00\x80;-c;IBM1161;UTF-8//TRANSLIT//IGNORE"
37 "\x00\xdb;-c;IBM1162;UTF-8//TRANSLIT//IGNORE"
38 "\x00\x70;-c;IBM12712;UTF-8//TRANSLIT//IGNORE"
39-# These are known hangs that are yet to be fixed:
40-# "\x00\x0f;-c;IBM1364;UTF-8"
41-# "\x00\x0f;-c;IBM1371;UTF-8"
42-# "\x00\x0f;-c;IBM1388;UTF-8"
43-# "\x00\x0f;-c;IBM1390;UTF-8"
44-# "\x00\x0f;-c;IBM1399;UTF-8"
45+"\x00\x0f;-c;IBM1364;UTF-8"
46+"\x0e\x0e;-c;IBM1364;UTF-8"
47+"\x00\x0f;-c;IBM1371;UTF-8"
48+"\x0e\x0e;-c;IBM1371;UTF-8"
49+"\x00\x0f;-c;IBM1388;UTF-8"
50+"\x0e\x0e;-c;IBM1388;UTF-8"
51+"\x00\x0f;-c;IBM1390;UTF-8"
52+"\x0e\x0e;-c;IBM1390;UTF-8"
53+"\x00\x0f;-c;IBM1399;UTF-8"
54+"\x0e\x0e;-c;IBM1399;UTF-8"
55 "\x00\x53;-c;IBM16804;UTF-8//TRANSLIT//IGNORE"
56 "\x00\x41;-c;IBM274;UTF-8//TRANSLIT//IGNORE"
57 "\x00\x41;-c;IBM275;UTF-8//TRANSLIT//IGNORE"
58diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
59index 49e7267ab4..521f0825b7 100644
60--- a/iconvdata/ibm1364.c
61+++ b/iconvdata/ibm1364.c
62@@ -158,24 +158,14 @@ enum
63 \
64 if (__builtin_expect (ch, 0) == SO) \
65 { \
66- /* Shift OUT, change to DBCS converter. */ \
67- if (curcs == db) \
68- { \
69- result = __GCONV_ILLEGAL_INPUT; \
70- break; \
71- } \
72+ /* Shift OUT, change to DBCS converter (redundant escape okay). */ \
73 curcs = db; \
74 ++inptr; \
75 continue; \
76 } \
77 if (__builtin_expect (ch, 0) == SI) \
78 { \
79- /* Shift IN, change to SBCS converter. */ \
80- if (curcs == sb) \
81- { \
82- result = __GCONV_ILLEGAL_INPUT; \
83- break; \
84- } \
85+ /* Shift IN, change to SBCS converter (redundant escape okay). */ \
86 curcs = sb; \
87 ++inptr; \
88 continue; \
89--
902.29.2
91
diff --git a/meta/recipes-core/glibc/glibc_2.32.bb b/meta/recipes-core/glibc/glibc_2.32.bb
index 2d9c707a0b..249f59176e 100644
--- a/meta/recipes-core/glibc/glibc_2.32.bb
+++ b/meta/recipes-core/glibc/glibc_2.32.bb
@@ -1,7 +1,8 @@
1require glibc.inc 1require glibc.inc
2require glibc-version.inc 2require glibc-version.inc
3 3
4CVE_CHECK_WHITELIST += "CVE-2020-10029" 4# whitelist CVE's with fixes in latest release/2.32/master branch
5CVE_CHECK_WHITELIST += "CVE-2019-25013 CVE-2020-10029 CVE-2020-27618"
5 6
6DEPENDS += "gperf-native bison-native make-native" 7DEPENDS += "gperf-native bison-native make-native"
7 8
@@ -45,8 +46,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
45 file://0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch \ 46 file://0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch \
46 file://CVE-2020-29562.patch \ 47 file://CVE-2020-29562.patch \
47 file://CVE-2020-29573.patch \ 48 file://CVE-2020-29573.patch \
48 file://CVE-2019-25013.patch \
49 file://CVE-2020-27618.patch \
50 " 49 "
51S = "${WORKDIR}/git" 50S = "${WORKDIR}/git"
52B = "${WORKDIR}/build-${TARGET_SYS}" 51B = "${WORKDIR}/build-${TARGET_SYS}"