OPINION: It's an old tradition to blame Microsoft for not doing the security work you should have done yourself.Google has fixed a
bug in its Chrome browser which could allow cross-site scripting and
other dangerous policy violations under interesting circumstances: when Chrome is called from Internet Explorer because a link is executed in IE with the "chromehtml" protocol handler.
Update Chrome to get to the new version 1.0.154.59, which they say
fixes the problem, but that's not what's really interesting about this
bug.
What's interesting is that it's actually a new manifestation of an
old problem: external protocol handlers are called from Internet
Explorer with malicious input; IE just calls the handler with the
supplied input. In this case, IBM researcher Roi Saltzman found three
main attacks that could be launched through this mechanism that would
be blocked through normal Chrome access methods.
It's very similar to a series of bugs that were found in the combination of Internet Explorer and Firefox back in July of 2007. Similar stuff, some abusing the firefoxurl protocol handler.
In both cases, the other company chose to blame Microsoft for the
bug, claiming that Internet Explorer should have sanitized the inputs
before passing them on to the external protocol handler. The Mozilla security vulnerability advisory on the subject contains the following: "Internet
Explorer calls registered URL protocols without escaping quotes and may
be used to pass unexpected and potentially dangerous data to the
application that registers that URL Protocol....This patch does not fix the vulnerability in Internet Explorer."
Google wasn't quite so ostentatious in blaming
Microsoft, but they did it just the same. Roi Saltzman didn't attempt to blame
Microsoft, but in the
Chrome vulnerability database writeup on their report, someone at
Google puts it this way: "Because of a known silliness of MSIE,
calls to registered URL handlers for protocols such as chromehtml: are not
constructed with sufficient escaping. We previously combated cases where this
could be used to pass unsolicited --no-sandbox or --renderer-path to the
browser."
Think about what they're asking Internet Explorer to do: The whole
idea of an external protocol handler is to have IE (I think it's
actually whatever the default browser is) call an external program in
order to handle an http request. IE doesn't know what the external
program does, it's not supposed to care. So how is it supposed to know
how to sanitize inputs? In order to do that it would need to know about
the semantics of the protocol handler. IE is just a shell in this case,
not a client handler of the request.
Even if you were to argue that IE should do standard escaping on the
stream, it's disingenuous for Mozilla and Google to argue that they
shouldn't need to do input sanitizing because Microsoft should be doing
it. The lesson of the last 10 years is that you have to make sure your
own inputs are sanitized.
Google went ahead and fixed the bug which is just as well, since
Microsoft isn't going to fix it for them. Let's hope this isn't a onsie
fix, but that they take this opportunity to look at inputs on all their
external protocol handlers.
Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983.
Editor's Note: This article was updated with new information.
| | Reader Comments: Google Joins Mozilla, Blames IE for Chrome Bug | | >>> Post your comment now!
| | I couldn't agree more with the authorI couldn't agree more with this author. Indeed, IE is in fact acting as a shell and just passing on the request to the requested protocol handler.... Posted At: 05-13-09 By: Craig S. | | | | | | A user comment on this articleFirst, I want to point out in the article, you quoted the Mozilla security advisory as saying:
"Internet Explorer calls registered URL protocols... Posted At: 05-05-09 By: Anonymous Reader | | | | | | a bit of bothprotocol handlers working as an UrL should follow the RFC 1738 specifications - on both sides:
- output sanitizing should be done by the protocol... Posted At: 05-05-09 By: Mitch 74 | | | | | | BugsA bug is usually the result of some human's ignorance, laziness, haste, or stupidity. I wonder how many of these security holes can be traced to the... Posted At: 04-29-09 By: Tom | | | | | | Why?Because is calling a protocol handling application that is registered in your machine (based on the prefix), when you type ftp:// http:// mailto://... Posted At: 04-29-09 By: IT | | | | | | QuestionRegardless of whose bug it is, my question is why is Internet Explorer calling another browser in the first place? Is this because of Microsoft's... Posted At: 04-29-09 By: Blair Christensen | | | | | | >>> Post your comment now! | | | | | |
|
 |