diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/compression.scm | 1 | ||||
-rw-r--r-- | gnu/packages/patches/p7zip-CVE-2017-17969.patch | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 3e0541eb92..a099f8da5a 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1377,6 +1377,7 @@ It can be used as a replacement for the Apache @code{CBZip2InputStream} / (delete-file-recursively "CPP/7zip/Compress/Rar") #t)) (patches (search-patches "p7zip-CVE-2016-9296.patch" + "p7zip-CVE-2017-17969.patch" "p7zip-remove-unused-code.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/p7zip-CVE-2017-17969.patch b/gnu/packages/patches/p7zip-CVE-2017-17969.patch new file mode 100644 index 0000000000..51c24000e5 --- /dev/null +++ b/gnu/packages/patches/p7zip-CVE-2017-17969.patch @@ -0,0 +1,35 @@ +Fix CVE-2017-17969: + +https://sourceforge.net/p/p7zip/bugs/204/ +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17969 + +Patch copied from Debian. + +Subject: Heap-based buffer overflow in 7zip/Compress/ShrinkDecoder.cpp +Origin: vendor, https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/27d7/attachment/CVE-2017-17969.patch +Forwarded: https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/#27d7 +Bug: https://sourceforge.net/p/p7zip/bugs/204/ +Bug-Debian: https://bugs.debian.org/888297 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-17969 +Author: Antoine Beaupré <anarcat@debian.org> +Reviewed-by: Salvatore Bonaccorso <carnil@debian.org> +Last-Update: 2018-02-01 +Applied-Upstream: 18.00-beta + +--- a/CPP/7zip/Compress/ShrinkDecoder.cpp ++++ b/CPP/7zip/Compress/ShrinkDecoder.cpp +@@ -121,8 +121,13 @@ HRESULT CDecoder::CodeReal(ISequentialIn + { + _stack[i++] = _suffixes[cur]; + cur = _parents[cur]; ++ if (cur >= kNumItems || i >= kNumItems) ++ break; + } +- ++ ++ if (cur >= kNumItems || i >= kNumItems) ++ break; ++ + _stack[i++] = (Byte)cur; + lastChar2 = (Byte)cur; + |