Related topics

Yahoo! fixes bug that gave free rein to user accounts

All hail the power of the XSS error!

Common Topics

Yahoo! has plugged a site-wide coding error that made it possible for miscreants to gain complete access to a user's account simply by convincing the holder to click on a booby-trapped link.

The security defect is the latest to affect a large website, which consumers and businesses are increasingly entrusting with a plethora of sensitive information, such as email, address books and calendar entries. Yahoo patched the vulnerability, which was the result of a cross-site scripting (XSS) error, hours after the Net Cooties blog first reported it on Thursday.

Researchers say it would have been trivial to exploit the vulnerability because it worked across multiple browsers and required only that a victim click on an innocuous-looking link embedded in an email. Once the link was clicked, an attacker would be able to rummage through the victim's address book, send emails or instant messages posing as the victim, view recent queries and settings made in Yahoo! Maps and access just about every other service on the victim's account.

"Yahoo! takes security seriously and consistently employs measures to help protect our users," a Yahoo! spokesman, who would not let us publish his name, said.

The vulnerability is the latest reminder of the pitfalls of XSS errors, which are often the result of trying to make multiple services scattered across a website work seamlessly. Unlike many other types of web vulnerabilities, an XSS flaw usually is not limited to a particular browser or a small range of unauthorized functions that it can carry out.

"It's incredibly powerful because it allows the attackers to to do anything they want to any website that's vulnerable," says Robert Hansen, a researcher specializing in web-based security who runs the ha.ckers.org blog. "It's not well understood in the development community." Hansen estimates about 80 percent of sites contain one or more XSS flaws.

Two weeks ago, Google fixed an XSS error that could have allowed an attacker to access or delete a Gmail user's messages. It was one of four vulnerabilities discovered that week affecting the search king. One of the other three involved a scripting error that closely resembles an XSS error.

XSS mistakes are painfully easy to make because they rely on javascript that's designed to be rendered on a multitude of browsers and other types of software. Given the flexibility that's needed, javascript often behaves in ways that aren't spelled out in any text book and can only be detected through hours of experimentation.

It would seem XSS bloopers are so common that even those in the business of preventing them sometimes fall victim. Just ask IBM. It turns out a page that supports XSS protections in Big Blue's Quickplace web collaboration tool has its own XSS-related problem that displays the message "Owned" when accessed through this link. (We expect IBM to fix the page, so we took the screenshot below.)

"The moral of the story?" asks Hansen, who credits Arian Evans of Whitehat Security with spotting the blunder. "Make sure to check your site for the vulnerability you claim to be able to prevent in your products."

If there's a silver lining to XSS vulnerabilities, it's the relative ease of fixing them. Plugging flaws in desktop software requires that all affected users upgrade the faulty applications. XSS errors, by contrast, are corrected by fixing code that runs on a server, helping to explain how Yahoo was able to fix this most recent problem so swiftly. ®