[webkit-dev] ExecState::thisObject()

Maciej Stachowiak mjs at apple.com
Mon Jul 13 16:59:24 PDT 2009


On Jul 13, 2009, at 4:34 PM, Adam Barth wrote:

> CVE-2009-1702 is an example of such as security hole.  I'm sure that I
> can find more if I look for them.

I think objects attached to the global object and accessible cross- 
origin are a special case here. (The advisory cited is about Location  
and History.) Values that can be accessed cross-origin are the most  
likely locus for security issues in this area. And they also likely  
need behavior that's different from the generally proposed pattern,  
since revealing or allowing the mutation of home origin prototypes is  
a security risk.

If security is one motivation for this work, then I'd like us to  
understand the pattern we want to use for cross-origin-accessible  
objects. Should they use the "home global object" prototype but  
protect it from mutation or access to extended properties, should they  
use the prototype of the referencing frame (lexical global object) or  
something else?


>
>> Personally I am convinced that the answers to (3) and (C) are both  
>> "yes",
>> and I don't know about any of the other points.
>
> I can try to provide more information as best I can.  Another option
> is to make this change incrementally and assess the costs as we go.
> For example, we could fix the SVG prototypes first.

Doing the change incrementally seems wise, if it is feasible to do so.  
Maybe even a patch demonstrating how it would work for a single class  
could be a good way to evaluate the change. Perhaps separate  
trailblazing examples could be given for both an ordinary class and  
one that is cross-origin accessible.

Regards,
Maciej



More information about the webkit-dev mailing list