Re: [RFC PATCH] binfmt_elf: Fix PIE execution with randomizationdisabled

From: Jiri Kosina
Date: Mon Oct 03 2011 - 10:53:46 EST


On Thu, 29 Sep 2011, Josh Boyer wrote:

> Perhaps another check here for randomize? Something like:
>
> #if defined(CONFIG_X86) || defined(CONFIG_ARM)
> if (current->flags & PF_RANDOMIZE)
> load_bias = 0;
> else if (vaddr)
> load_bias = 0;
> else
> load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE);
> #else
> load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
> #endif
>
> If that's stupid, then feel free to tell me. I won't pretend like I
> understand what is going on here yet, but based on the explanation you
> provided that might work.

I have just verified my hunch that the original patch from H.J. / Josh
breaks ASLR completely, so Andrew, please drop it for now.

I am now looking into how to fix things properly.

Josh, looking at what you are proposing -- do you see any reason to make
the behavior different in #else branch and in !(current->flags &
PF_RANDOMIZE) case?

--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/