gnu: screen: Fix CVE-2017-5618.

* gnu/packages/patches/screen-CVE-2017-5618.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/screen.scm (screen)[source]: Use it.
This commit is contained in:
Leo Famulari 2017-02-11 22:35:29 -05:00
parent 6ea86d7ec3
commit d6065945ff
No known key found for this signature in database
GPG Key ID: 2646FA30BACA7F08
3 changed files with 43 additions and 0 deletions

View File

@ -891,6 +891,7 @@ dist_patch_DATA = \
%D%/packages/patches/sed-hurd-path-max.patch \ %D%/packages/patches/sed-hurd-path-max.patch \
%D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-test-threading.patch \ %D%/packages/patches/scotch-test-threading.patch \
%D%/packages/patches/screen-CVE-2017-5618.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/serf-comment-style-fix.patch \ %D%/packages/patches/serf-comment-style-fix.patch \

View File

@ -0,0 +1,40 @@
Fixes CVE-2017-5618 (privilege escalation via opening the logfile when
screen is installed setuid root):
https://savannah.gnu.org/bugs/?50142
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5618
This patch reverts the upstream commit that introduced the bug:
https://git.savannah.gnu.org/cgit/screen.git/commit/?id=5460f5d28c01a9a58e021eb1dffef2965e629d58
From f55b0cc29a0ac2a1c54e8a5e886b7393edd4a76c Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Sat, 11 Feb 2017 22:40:24 -0500
Subject: [PATCH] Revert "adding permissions check for the logfile name"
This reverts commit 5460f5d28c01a9a58e021eb1dffef2965e629d58.
---
src/screen.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/screen.c b/src/screen.c
index 64650e9..283c305 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -673,12 +673,6 @@ int main(int ac, char** av)
Panic(0, "-L: logfile name can not start with \"-\" symbol");
if (strlen(screenlogfile) > PATH_MAX)
Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX);
-
- FILE *w_check;
- if ((w_check = fopen(screenlogfile, "w")) == NULL)
- Panic(0, "-L: logfile name access problem");
- else
- fclose(w_check);
}
nwin_options.Lflag = 1;
break;
--
2.11.1

View File

@ -40,6 +40,8 @@
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/screen/screen-" (uri (string-append "mirror://gnu/screen/screen-"
version ".tar.gz")) version ".tar.gz"))
(patches (search-patches "screen-CVE-2017-5618.patch"))
(patch-flags '("-p2"))
(sha256 (sha256
(base32 "1c7grw03a9iwvqbxfd6hmjb681rp8gb55zsxm7b3apqqcb1sghq1")))) (base32 "1c7grw03a9iwvqbxfd6hmjb681rp8gb55zsxm7b3apqqcb1sghq1"))))
(build-system gnu-build-system) (build-system gnu-build-system)