Cross-site scripting using .valueOf.call()
- April 13, 2006
- Firefox, Mozilla Suite, SeaMonkey, Thunderbird
- Fixed in
- Firefox 1.0.8
- Firefox 1.5
- Mozilla Suite 1.7.13
- SeaMonkey 1
- Thunderbird 1.0.8
- Thunderbird 1.5
moz_bug_r_a4 discovered that .valueOf.call() and .valueOf.apply() when called with no arguments were returning the Object class prototype rather than the caller's global window object. When called on a reachable property of another window this provides a hook to get around the same-origin protection, allowing an attacker to inject script into another window.
Cross-site script injection can be used to steal confidential data such as cookies or passwords, or perform actions on the user's behalf. It can also be used to alter the content of the other window which could be used to fool a user into trusting bogus information or downloaded content.
Exploit code and details embargoed during the active update period.