svn commit: r199981 - stable/7/libexec/rtld-elf
Colin Percival
cperciva at FreeBSD.org
Tue Dec 1 03:00:16 UTC 2009
Author: cperciva
Date: Tue Dec 1 03:00:16 2009
New Revision: 199981
URL: http://svn.freebsd.org/changeset/base/199981
Log:
MFC r199979: Fix local root vulnerability.
Modified:
stable/7/libexec/rtld-elf/rtld.c
Directory Properties:
stable/7/libexec/rtld-elf/ (props changed)
Modified: stable/7/libexec/rtld-elf/rtld.c
==============================================================================
--- stable/7/libexec/rtld-elf/rtld.c Tue Dec 1 02:59:22 2009 (r199980)
+++ stable/7/libexec/rtld-elf/rtld.c Tue Dec 1 03:00:16 2009 (r199981)
@@ -361,12 +361,12 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_
* future processes to honor the potentially un-safe variables.
*/
if (!trust) {
- unsetenv(LD_ "PRELOAD");
- unsetenv(LD_ "LIBMAP");
- unsetenv(LD_ "LIBRARY_PATH");
- unsetenv(LD_ "LIBMAP_DISABLE");
- unsetenv(LD_ "DEBUG");
- unsetenv(LD_ "ELF_HINTS_PATH");
+ if (unsetenv(LD_ "PRELOAD") || unsetenv(LD_ "LIBMAP") ||
+ unsetenv(LD_ "LIBRARY_PATH") || unsetenv(LD_ "LIBMAP_DISABLE") ||
+ unsetenv(LD_ "DEBUG") || unsetenv(LD_ "ELF_HINTS_PATH")) {
+ _rtld_error("environment corrupt; aborting");
+ die();
+ }
}
ld_debug = getenv(LD_ "DEBUG");
libmap_disable = getenv(LD_ "LIBMAP_DISABLE") != NULL;
More information about the svn-src-stable
mailing list