1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 12:49:46 +00:00

curl: CVE-2016-8620

glob parser write/read out of bounds

Affected versions: curl 7.34.0 to and including 7.50.3
Reference:
https://curl.haxx.se/docs/adv_20161102F.html

(From OE-Core rev: 7308140d81299dca7db98259461d60e0fe86878e)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Sona Sarmadi
2016-11-15 10:08:15 +01:00
committed by Richard Purdie
parent f5e807efc7
commit 12afe3c057
2 changed files with 45 additions and 0 deletions
@@ -0,0 +1,44 @@
From fbb5f1aa0326d485d5a7ac643b48481897ca667f Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 3 Oct 2016 17:27:16 +0200
Subject: [PATCH] range: prevent negative end number in a glob range
CVE: CVE-2016-8620
Upstream-Status: Backport
Bug: https://curl.haxx.se/docs/adv_20161102F.html
Reported-by: Luật Nguyễn
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
---
src/tool_urlglob.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/tool_urlglob.c b/src/tool_urlglob.c
index a357b8b..64c75ba 100644
--- a/src/tool_urlglob.c
+++ b/src/tool_urlglob.c
@@ -257,6 +257,12 @@ static CURLcode glob_range(URLGlob *glob, char **patternp,
endp = NULL;
else {
pattern = endp+1;
+ while(*pattern && ISBLANK(*pattern))
+ pattern++;
+ if(!ISDIGIT(*pattern)) {
+ endp = NULL;
+ goto fail;
+ }
errno = 0;
max_n = strtoul(pattern, &endp, 10);
if(errno || (*endp == ':')) {
@@ -277,6 +283,7 @@ static CURLcode glob_range(URLGlob *glob, char **patternp,
}
}
+ fail:
*posp += (pattern - *patternp);
if(!endp || (min_n > max_n) || (step_n > (max_n - min_n)) || !step_n)
--
1.9.1
+1
View File
@@ -20,6 +20,7 @@ SRC_URI += " file://configure_ac.patch \
file://CVE-2016-8617.patch \
file://CVE-2016-8618.patch \
file://CVE-2016-8619.patch \
file://CVE-2016-8620.patch \
"
SRC_URI[md5sum] = "9ea3123449439bbd960cd25cf98796fb"