Closed Bug 338523 Opened 15 years ago Closed 15 years ago
XSS with XPCNative
XPCNativeWrapper(window).Function(...) allows one to create a function that can be used for XSS attacks.
works on: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8.1a2) Gecko/20060518 BonEcho/2.0a2 Mozilla/5.0 (Windows; U; Win98; en-US; rv:22.214.171.124) Gecko/20060518 Firefox/126.96.36.199
I think I have this mostly figured out. I'm too jetlagged at the moment to explain more, but it has to do with XPCNativeWrappers causing the outer window's Function to be found instead of the inner one's. I'll have details and hopefully a patch tomorrow.
Priority: -- → P1
Target Milestone: --- → mozilla1.9alpha
With this patch, standard classes don't resolve at all through XPCNativeWrappers. I'll work on that soon.
> With this patch, standard classes don't resolve at all through > XPCNativeWrappers. The problem is simply that I need to define the resolved property on the rewrapped obj2 for things to work. I'll probably have a patch tomorrow or Monday.
Status: NEW → ASSIGNED
This patch goes half-way. I realized that it isn't sufficient, since it will happily return a content-supplied Function to unsuspecting XPCNativeWrapper(window) users.
Attachment #224283 - Attachment is obsolete: true
So, jst and I talked about this a bunch, and came to the conclusion that getting standard classes out of XPCNativeWrappers is unsupported and shouldn't be allowed. If you need to create a function or string in a content context from chrome, the preferred way (after this patch) will be to use w.eval(...) instead.
Whiteboard: [sg:high] → [sg:high][patch]
Comment on attachment 226409 [details] [diff] [review] No standard classes from XPCNativeWrapper Looks reasonable, yeah.
Attachment #226409 - Flags: superreview?(bzbarsky) → superreview+
Comment on attachment 226409 [details] [diff] [review] No standard classes from XPCNativeWrapper r=jst
Attachment #226409 - Flags: review?(jst) → review+
Fix checked into trunk.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment on attachment 226409 [details] [diff] [review] No standard classes from XPCNativeWrapper approved for 1.8.0 branch, a=dveditz for drivers
Attachment #226409 - Flags: approval188.8.131.52? → approval184.108.40.206+
Fix checked into the 1.8.0 branch.
Attachment #226409 - Flags: approval1.8.1? → approval1.8.1+
Fix checked into the 1.8 branch.
v.fixed on 1.8.0 branch with Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:220.127.116.11) Gecko/20060626 Firefox/18.104.22.168, no exploit with testcase: XPCNativeWrapper(window).Function is not a function attachment.cgi?id... (line 11) anonymous
Not needed for moz1.7 or aviary branches, XPCNativeWrapper() not available.
Whiteboard: [sg:high][patch] → [sg:high][patch] not 1.7/aviary
pvnick is doing a bit of research on XSS and also gathering up bugs with security related test cases to help add to the regression/certification test suites. adding him to the cc list in these...
You need to log in before you can comment on or make changes to this bug.