diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2017-06-20 05:59:17 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-06-20 05:59:17 +0200 |
commit | 3776f38fcd267c127ba5eb222e2c614c191744aa (patch) | |
tree | 7d196b5415bd1cb87860ce5defd3bffa36b2573d /sysdeps/generic | |
parent | c69d4a0f680a24fdbe323764a50382ad324041e9 (diff) | |
download | glibc-3776f38fcd267c127ba5eb222e2c614c191744aa.tar.gz |
Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (bug #21209)
The LD_HWCAP_MASK environment variable may alter the selection of
function variants for some architectures. For AT_SECURE process it
means that if an outdated routine has a bug that would otherwise not
affect newer platforms by default, LD_HWCAP_MASK will allow that bug
to be exploited.
To be on the safe side, ignore and disable LD_HWCAP_MASK for setuid
binaries.
[BZ #21209]
* elf/rtld.c (process_envvars): Ignore LD_HWCAP_MASK for
AT_SECURE processes.
* sysdeps/generic/unsecvars.h: Add LD_HWCAP_MASK.
* elf/tst-env-setuid.c (test_parent): Test LD_HWCAP_MASK.
(test_child): Likewise.
* elf/Makefile (tst-env-setuid-ENV): Add LD_HWCAP_MASK.
(cherry picked from commit 1c1243b6fc33c029488add276e56570a07803bfd)
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/unsecvars.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/generic/unsecvars.h b/sysdeps/generic/unsecvars.h index a74083786e..5ea8a4a259 100644 --- a/sysdeps/generic/unsecvars.h +++ b/sysdeps/generic/unsecvars.h @@ -16,6 +16,7 @@ "LD_DEBUG\0" \ "LD_DEBUG_OUTPUT\0" \ "LD_DYNAMIC_WEAK\0" \ + "LD_HWCAP_MASK\0" \ "LD_LIBRARY_PATH\0" \ "LD_ORIGIN_PATH\0" \ "LD_PRELOAD\0" \ |