Google Joins Mozilla, Blames IE for Chrome Bug

By Larry Seltzer  |  Posted 2009-04-27 Print this article Print

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, 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. 

Larry Seltzer has been writing software for and English about computers ever since—,much to his own amazement—,he graduated from the University of Pennsylvania in 1983.

He was one of the authors of NPL and NPL-R, fourth-generation languages for microcomputers by the now-defunct DeskTop Software Corporation. (Larry is sad to find absolutely no hits on any of these +products on Google.) His work at Desktop Software included programming the UCSD p-System, a virtual machine-based operating system with portable binaries that pre-dated Java by more than 10 years.

For several years, he wrote corporate software for Mathematica Policy Research (they're still in business!) and Chase Econometrics (not so lucky) before being forcibly thrown into the consulting market. He bummed around the Philadelphia consulting and contract-programming scenes for a year or two before taking a job at NSTL (National Software Testing Labs) developing product tests and managing contract testing for the computer industry, governments and publication.

In 1991 Larry moved to Massachusetts to become Technical Director of PC Week Labs (now eWeek Labs). He moved within Ziff Davis to New York in 1994 to run testing at Windows Sources. In 1995, he became Technical Director for Internet product testing at PC Magazine and stayed there till 1998.

Since then, he has been writing for numerous other publications, including Fortune Small Business, Windows 2000 Magazine (now Windows and .NET Magazine), ZDNet and Sam Whitmore's Media Survey.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel