Re: [PATCH] Gerd Hoffman's move-vsyscall-into-user-address-range patch

Zachary Amsden
2006-05-16T08:23:57Z

Ingo Molnar wrote:
> * Rusty Russell <rusty@rustcorp.com.au> wrote:
>
>
>> AFAICT we'll pay one extra TLB entry for this patch. Zach had a patch
>> which left the vsyscall page at the top of memory (minus hole for
>> hypervisor) and patched the ELF header at boot.
>>
>
> i'd suggest the solution from exec-shield (which has been there for a
> long time), which also randomizes the vsyscall vma. Exploits are already
> starting to use the vsyscall page (with predictable addresses) to
> circumvent randomization, it provides 'interesting' instructions to act
> as a syscall-functionality building block. Moving that address to
> another predictable place solves the virtualization problem, but doesnt
> solve the address-space randomization problem.
>

Let's dive into it. How do you get the randomization without
sacrificing syscall performance? Do you randomize on boot, dynamically,
or on a per-process level? Because I can see some issues with
per-process randomization that will certainly cost some amount of cycles
on the system call path. Marginal perhaps, but that is exactly where
you don't want to shed cycles unnecessarily, and the complexity of the
whole thing will go up quite a bit I think.

Zach