diff options
-rw-r--r-- | recipes-support/curl/curl/CVE-2017-1000101.patch | 97 | ||||
-rw-r--r-- | recipes-support/curl/curl_%.bbappend | 1 |
2 files changed, 98 insertions, 0 deletions
diff --git a/recipes-support/curl/curl/CVE-2017-1000101.patch b/recipes-support/curl/curl/CVE-2017-1000101.patch new file mode 100644 index 0000000..2b25cfd --- /dev/null +++ b/recipes-support/curl/curl/CVE-2017-1000101.patch | |||
@@ -0,0 +1,97 @@ | |||
1 | From 7bf8af31fc9eaecd845d59ecb6a0dbe9e2028cf7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Daniel Stenberg <daniel@haxx.se> | ||
3 | Date: Tue, 1 Aug 2017 17:16:07 +0200 | ||
4 | Subject: [PATCH] glob: do not continue parsing after a strtoul() overflow | ||
5 | range | ||
6 | |||
7 | Added test 1289 to verify. | ||
8 | |||
9 | CVE-2017-1000101 | ||
10 | |||
11 | Bug: https://curl.haxx.se/docs/adv_20170809A.html | ||
12 | Reported-by: Brian Carpenter | ||
13 | |||
14 | CVE: CVE-2017-1000101 | ||
15 | Upstream-Status: Backport [https://curl.haxx.se/CVE-2017-1000101.patch] | ||
16 | |||
17 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
18 | --- | ||
19 | src/tool_urlglob.c | 5 ++++- | ||
20 | tests/data/Makefile.inc | 2 +- | ||
21 | tests/data/test1289 | 35 +++++++++++++++++++++++++++++++++++ | ||
22 | 3 files changed, 40 insertions(+), 2 deletions(-) | ||
23 | create mode 100644 tests/data/test1289 | ||
24 | |||
25 | diff --git a/src/tool_urlglob.c b/src/tool_urlglob.c | ||
26 | index d002f27..caf2385 100644 | ||
27 | --- a/src/tool_urlglob.c | ||
28 | +++ b/src/tool_urlglob.c | ||
29 | @@ -269,7 +269,10 @@ static CURLcode glob_range(URLGlob *glob, char **patternp, | ||
30 | } | ||
31 | errno = 0; | ||
32 | max_n = strtoul(pattern, &endp, 10); | ||
33 | - if(errno || (*endp == ':')) { | ||
34 | + if(errno) | ||
35 | + /* overflow */ | ||
36 | + endp = NULL; | ||
37 | + else if(*endp == ':') { | ||
38 | pattern = endp+1; | ||
39 | errno = 0; | ||
40 | step_n = strtoul(pattern, &endp, 10); | ||
41 | diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc | ||
42 | index 8251ab9..6f41eef 100644 | ||
43 | --- a/tests/data/Makefile.inc | ||
44 | +++ b/tests/data/Makefile.inc | ||
45 | @@ -130,7 +130,7 @@ test1236 test1237 test1238 test1239 test1240 test1241 test1242 test1243 \ | ||
46 | test1244 test1245 test1246 test1247 test1248 test1249 test1250 test1251 \ | ||
47 | test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 \ | ||
48 | \ | ||
49 | -test1280 test1281 test1282 test1283 test1284 test1285 test1286 \ | ||
50 | +test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1289 \ | ||
51 | \ | ||
52 | test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 \ | ||
53 | test1308 test1309 test1310 test1311 test1312 test1313 test1314 test1315 \ | ||
54 | diff --git a/tests/data/test1289 b/tests/data/test1289 | ||
55 | new file mode 100644 | ||
56 | index 0000000..d679cc0 | ||
57 | --- /dev/null | ||
58 | +++ b/tests/data/test1289 | ||
59 | @@ -0,0 +1,35 @@ | ||
60 | +<testcase> | ||
61 | +<info> | ||
62 | +<keywords> | ||
63 | +HTTP | ||
64 | +HTTP GET | ||
65 | +globbing | ||
66 | +</keywords> | ||
67 | +</info> | ||
68 | + | ||
69 | +# | ||
70 | +# Server-side | ||
71 | +<reply> | ||
72 | +</reply> | ||
73 | + | ||
74 | +# Client-side | ||
75 | +<client> | ||
76 | +<server> | ||
77 | +http | ||
78 | +</server> | ||
79 | +<name> | ||
80 | +globbing with overflow and bad syntxx | ||
81 | +</name> | ||
82 | +<command> | ||
83 | +http://ur%20[0-60000000000000000000 | ||
84 | +</command> | ||
85 | +</client> | ||
86 | + | ||
87 | +# Verify data after the test has been "shot" | ||
88 | +<verify> | ||
89 | +# curl: (3) [globbing] bad range in column | ||
90 | +<errorcode> | ||
91 | +3 | ||
92 | +</errorcode> | ||
93 | +</verify> | ||
94 | +</testcase> | ||
95 | -- | ||
96 | 1.9.1 | ||
97 | |||
diff --git a/recipes-support/curl/curl_%.bbappend b/recipes-support/curl/curl_%.bbappend index f915ba1..72cd405 100644 --- a/recipes-support/curl/curl_%.bbappend +++ b/recipes-support/curl/curl_%.bbappend | |||
@@ -4,4 +4,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | |||
4 | SRC_URI += "file://CVE-2017-7468.patch \ | 4 | SRC_URI += "file://CVE-2017-7468.patch \ |
5 | file://CVE-2017-9502.patch \ | 5 | file://CVE-2017-9502.patch \ |
6 | file://CVE-2017-1000100.patch \ | 6 | file://CVE-2017-1000100.patch \ |
7 | file://CVE-2017-1000101.patch \ | ||
7 | " | 8 | " |