From efa26d9c13a6fabd34a05139e1d8b2e441b2fae9 Mon Sep 17 00:00:00 2001 From: Florian Weimer <fweimer@redhat.com> Date: Mon, 19 Jun 2017 18:34:53 +0200 Subject: [PATCH] CVE-2017-1000366: Ignore LD_LIBRARY_PATH for AT_SECURE=1 programs [BZ #21624] LD_LIBRARY_PATH can only be used to reorder system search paths, which is not useful functionality. This makes an exploitable unbounded alloca in _dl_init_paths unreachable for AT_SECURE=1 programs. (cherry picked from commit f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d) --- ChangeLog | 7 +++++++ NEWS | 1 + elf/rtld.c | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) #diff --git a/ChangeLog b/ChangeLog #index 989e0da9ae..5e5e8615b4 100644 #--- a/ChangeLog #+++ b/ChangeLog #@@ -1,3 +1,10 @@ #+2017-06-19 Florian Weimer <fweimer@redhat.com> #+ #+ [BZ #21624] #+ CVE-2017-1000366 #+ * elf/rtld.c (process_envvars): Ignore LD_LIBRARY_PATH for #+ __libc_enable_secure. #+ # 2017-03-31 Slava Barinov <v.barinov@samsung.com> # # [BZ #21289] #diff --git a/NEWS b/NEWS #index c7ff11610e..76a7f6a193 100644 #--- a/NEWS #+++ b/NEWS #@@ -43,6 +43,7 @@ The following bugs are resolved with this release: # [20177] $dp is not initialized correctly in sysdeps/hppa/start.S # [20357] Incorrect cos result for 1.5174239687223976 # [21289] Fix symbol redirect for fts_set #+ [21624] Unsafe alloca allows local attackers to alias stack and heap (CVE-2017-1000366) # # # Version 2.23 diff --git a/elf/rtld.c b/elf/rtld.c index 647661ca45..215a9aec8f 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -2437,7 +2437,8 @@ process_envvars (enum mode *modep) case 12: /* The library search path. */ - if (memcmp (envline, "LIBRARY_PATH", 12) == 0) + if (!__libc_enable_secure + && memcmp (envline, "LIBRARY_PATH", 12) == 0) { library_path = &envline[13]; break; -- 2.13.1