We’ll but keep in mind here that the knowledge we are talking about is
based on the binary image as far as I can tell and knowledge of the order
of mapping, which given the mechanisms in place for privilege separation or
at least common forking a child is not that far of a stretch. “I am mapping
X and there will be Y mappings with a total size of Z before me whose base
address is A from the first/last loaded module”
Sure, If code with knowledge of an address is willing to act as an
oracle, then ASLR is not useful. This is really just an indirect (and
unlikely) way of leaking an address though.
Well, if you know in advance which address to leak you can arrange for
it to be a useless one, it would usually have to be MMAP_FIXED and be
sanitized (think KUSER_SHARED_DATA on Windows or the vsyscall page on
Linux) so as not to weaken…
Really? Because leaking a heap address in windows, openbsd, etc doesn’t
yield a full collapse of all loaded modules randomization given the
preconditions; I’m asking that it’s not just my box exhibiting this
behavior- which is a long story why it must just be mine.
considered a
Well, you are somewhat missing the gravity here. If this is generally
reproducible, you don’t need the address to leak, you just need a series of…
It sounds like you’re asking “If I can learn an address, have I defeated
ASLR”, and the answer is usually yes. It depends on the circumstances of
course, but leaking any address to an attacker would usually be considered a
bug and renders ASLR essentially useless.
For example, if you can find some JavaScript that tells you the address of
an object on the heap or the base address of a module,…
If you are looking for informations about the bug behind CVE-2008-568
it is described in length by Tobias Klein (the discoverer) in the
third chapter of his book “A Bug Hunter’s Diary”.