Interestingly, I wonder if the idea of only collecting weak references between 
turns is immune to such attacks, since it's not possible to have a bogus 
reference on the stack between turns, where there is no stack.

Dave

On Mar 26, 2013, at 5:55 PM, David Herman <dher...@mozilla.com> wrote:

> Patrick Walton send me this link to a fascinating approach to exploiting weak 
> references in engines using conservative stack scanning to discover the 
> address of objects:
> 
>    https://github.com/justdionysus/gcwoah
> 
> I don't fully grok all the details, but IIUC the attacker sprays the heap 
> with objects that it holds weak references to, synthesizes a fake reference 
> as an integer, triggers a conservative GC, and then uses the state of the 
> weak references to figure out which object lived at that address. As a 
> concrete example of how this can be used to do bad things: in conjunction 
> with an exploit that allows jumping to an arbitrary memory location, this 
> would effectively enable arbitrary code execution.
> 
> One immediate takeaway: Mark deserves serious kudos, because Dionysus was not 
> able to figure out how to use this attack on WeakMaps. He explicitly mentions 
> the work on WeakMaps and credits them for having been well designed for 
> security. Well done!
> 
> But we need to take this into account as we consider what to do about weak 
> references in ES7.
> 
> Dave
> 
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to