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

From: Josh Boyer
Date: Mon Oct 03 2011 - 11:04:46 EST


On Mon, Oct 03, 2011 at 04:53:34PM +0200, Jiri Kosina wrote:
> 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.

Yes, please drop the original.

> 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?

I was mostly just trying to adapt H.J.'s patch to account for the
PF_RANDOMIZE case. Looking at it a bit more, I'm not sure why they
would need to be different. H.J., do you recall why you made that
change originally?

josh
--
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/