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

From: Zachary Amsden
Date: Tue May 16 2006 - 04:23:27 EST


Ingo Molnar wrote:
* Rusty Russell <rusty@xxxxxxxxxxxxxxx> 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
-
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/