From c84c8f66f54a508fbe5ba1831e3595794dc78eb2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 10 Mar 2017 22:35:50 -0500 Subject: [PATCH] gnu: wget: Fix CVE-2017-6508. * gnu/packages/patches/wget-CVE-2017-6508.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/wget.scm (wget)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/patches/wget-CVE-2017-6508.patch | 45 +++++++++++++++++++ gnu/packages/wget.scm | 2 + 3 files changed, 48 insertions(+) create mode 100644 gnu/packages/patches/wget-CVE-2017-6508.patch diff --git a/gnu/local.mk b/gnu/local.mk index cbd61e0972..c1b076a5f3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -970,6 +970,7 @@ dist_patch_DATA = \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/weechat-python.patch \ + %D%/packages/patches/wget-CVE-2017-6508.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-urwid-1.3.patch \ diff --git a/gnu/packages/patches/wget-CVE-2017-6508.patch b/gnu/packages/patches/wget-CVE-2017-6508.patch new file mode 100644 index 0000000000..0218fceaad --- /dev/null +++ b/gnu/packages/patches/wget-CVE-2017-6508.patch @@ -0,0 +1,45 @@ +Fix CVE-2017-6508: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6508 + +Patch copied from upstream source repository: + +https://git.savannah.gnu.org/cgit/wget.git/commit/?id=4d729e322fae359a1aefaafec1144764a54e8ad4 + +From 4d729e322fae359a1aefaafec1144764a54e8ad4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim=20R=C3=BChsen?= +Date: Mon, 6 Mar 2017 10:04:22 +0100 +Subject: [PATCH] Fix CRLF injection in Wget host part + +* src/url.c (url_parse): Reject control characters in host part of URL + +Reported-by: Orange Tsai +--- + src/url.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/src/url.c b/src/url.c +index 8f8ff0b8..7d36b27d 100644 +--- a/src/url.c ++++ b/src/url.c +@@ -925,6 +925,17 @@ url_parse (const char *url, int *error, struct iri *iri, bool percent_encode) + url_unescape (u->host); + host_modified = true; + ++ /* check for invalid control characters in host name */ ++ for (p = u->host; *p; p++) ++ { ++ if (c_iscntrl(*p)) ++ { ++ url_free(u); ++ error_code = PE_INVALID_HOST_NAME; ++ goto error; ++ } ++ } ++ + /* Apply IDNA regardless of iri->utf8_encode status */ + if (opt.enable_iri && iri) + { +-- +2.12.0 + diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 9ac21b4db1..1c56e14a66 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -20,6 +20,7 @@ (define-module (gnu packages wget) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages libidn) #:use-module (gnu packages python) #:use-module (gnu packages perl) @@ -39,6 +40,7 @@ (method url-fetch) (uri (string-append "mirror://gnu/wget/wget-" version ".tar.xz")) + (patches (search-patches "wget-CVE-2017-6508.patch")) (sha256 (base32 "1ljcfhbkdsd0zjfm520rbl1ai62fc34i7c45sfj244l8f6b0p58c"))))