<div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><div style="font-family:arial,helvetica,sans-serif;font-size:10pt">I was present for one of the discussions about the exploit and how an arena like allocator could have helped at Google. One proposed solution was to allocate all the JS typed buffers in an arena.<div>


<br></div><div>Is there a reason we can&#39;t just do that? It&#39;s much less intrusive to allocate ArrayBuffer in an arena than to allocate all DOM objects in one.</div><div><br></div><div>- E</div><div class="gmail_extra">


<br><br><div class="gmail_quote">On Wed, Nov 14, 2012 at 11:16 PM, Maciej Stachowiak <span dir="ltr">&lt;<a href="mailto:mjs@apple.com" target="_blank">mjs@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
Following up on a bugzilla discussion:<br>
<br>
&gt; It is indeed significant that only a small number of classes are allocated within RenderArena. For example, when there&#39;s a RenderObject which has been freed but is still in use, it&#39;s not possible for the attacker to allocate (e.g.) a raw ArrayBuffer contents on top of the freed slot. So the attacker cannot place arbitrary bytes on top of where the vtable pointer is expected to be. We&#39;ve made sure that the first sizeof(void*) bytes either point to a valid vtable pointer, or are a poisoned freelist pointer, or are an invalid pointer in the case that one of the (few) non-virtual classes is overlaid.<br>



&gt;<br>
&gt; It&#39;s essentially about limiting the attacker&#39;s possibilities when the inevitable rendering use-after-frees occur. There are some other non vtable related possibilities that get limited too.<br>
<br>
Interesting! How much value would be derived from allocating all classes with a virtual method in a separate heap from classes with no vtable and raw data buffers? And how much is specifically due to a more limited range of classes that may be present in the RenderArena? If classes with vtables getting overwritten by arbitrary data are the top fear, then there is probably a more modest solution than RenderArena. It could still cause additional memory fragmentation, but probably less so than RenderArenas.<br>



<br>
Regards,<br>
Maciej<br>
<div><div><br>
_______________________________________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org" target="_blank">webkit-dev@lists.webkit.org</a><br>
<a href="http://lists.webkit.org/mailman/listinfo/webkit-dev" target="_blank">http://lists.webkit.org/mailman/listinfo/webkit-dev</a><br>
</div></div></blockquote></div><br></div></div>
</div>