Re: VDSO randomization not very random

From: Kees Cook
Date: Thu Dec 11 2014 - 17:02:40 EST

Hi Hanno,

On Thu, Dec 11, 2014 at 10:45:01PM +0100, Hanno Böck wrote:
> Hello,
> I already reported this into your bugzilla, however Greg KH told me it
> might be a better idea to post it here:
> With current Linux kernels it seems the address randomization for
> loading the vdso library is not that random and can easily be
> bruteforced.
> This can easily be demonstrated. Get libvdso address from one
> executable:
> $ ldd /usr/bin/less|grep vdso
> (0x00007fff73bfe000)
> Now run ldd mutliple times and check if the same address appears:
> c=0; while (true); do let c=c+1; ldd /usr/bin/less|grep
> 0x00007fff73bfe000; [ "$?" == 0 ] && echo $c; done
> It usually takes only a few seconds and around 1000-2000 tries until
> the loading address is repeated (note that results may vary, it seems
> the randomization is biased, some values repeat more often than others).
> This information is mostly from this blog entry:
> And here's a thread on oss-security discussing the issue:
> The latest version of paxtest added a check for this that guesses the
> randomness of vdso:
> $ ./randvdso
> VDSO randomisation test : 11 quality bits (guessed)
> Bugzilla entry:

I'm hoping this will get addressed as part of the discussion around
the "ASLRv3" patches. PIE (as well as VDSO) randomization has been a
per-arch implementation, and it would be best to unify this in a common
high-entropy solution.

I think the problem with VDSO right now is that it is randomized in
relationship to the stack, rather than being randomized on its own.


Kees Cook
Chrome OS Security
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at