Attacks/Breaches
9/21/2010
03:31 PM
Connect Directly
Google+
Twitter
RSS
E-Mail
50%
50%

Twitter Attack An XSS Wake-Up Call

Attackers targeted once-patched cross-site scripting flaw on Twitter's website that had re-emerged after a site update

The high-profile attack that hit the Twitter website early this morning and affected tens to hundreds of thousands of Twitter users serves as a reminder of just how the pervasive but often-dismissed cross-site scripting (XSS) vulnerability could potentially be exploited to do more serious damage.

Twitter late this morning quickly fixed the XSS flaw hackers used to wage an attack that blended both XSS and cross-site request forgery (CSRF), and the attack appeared to have little to no lasting damage. But security experts say it represents a wake-up call that the XSS bug, which typically litters many websites and is often considered relatively benign by website operators and developers, is a real problem that should be taken more seriously. It's not uncommon to find 100 XSS bugs in just one application, they say.

The XSS bug that plagued Twitter's website today had actually been patched by the social networking firm last month, but reappeared after a recent update to the site (but not the current new Twitter platform rollout), according to a Twitter blog post today.

"From a Web app security industry perspective, it's another kind of barometer showing these kinds of attacks are real and can happen," says Ryan Barnett, a senior security researcher with Trustwave's SpiderLabs. "The outcome of this was minimal. There was no permanent damage. But this is showing a proof-of-concept that the bad guys are tinkering and able do this stuff. If they are choosing to do something more destructive, it's going to be a big deal."

Beth Jones, senior threat researcher for SophosLabs North America, says this is one of the first times a major site has been hit with a big XSS attack. "We see cross-site scripting bugs all the time, but this is a really big one," Jones says. "It's showing how browser attacks have not died in any way, shape, or form."

The initial attack sent pop-ups and, in some cases, a "rainbow Twitter" post, and then redirected users to Japanese pornographic sites. Among the affected accounts was that of White House press secretary Robert Gibbs.

XSS is one of the most common vulnerabilities in websites; according to recent data from IBM X-Force and HP/TippingPoint, it remains the No. 1 flaw discovered in Web applications. Nearly 35 percent of all vulnerabilities reported in the first half of this year were XSS, according to IBM's data. XSS bugs appear when Web applications don't properly validate user input from URLs or form fields, and attackers then can sneak their own code onto a page the user visits.

The initial XSS attack on Twitter this morning began before 6 a.m. Eastern Time with users submitting JavaScript code as plain text into a tweet that then was executed in victims' browsers.

"Early this morning, a user noticed the security hole and took advantage of it on Twitter.com. First, someone created an account that exploited the issue by turning tweets different colors and causing a pop-up box with text to appear when someone hovered over the link in the Tweet. This is why folks are referring to this an 'onMouseOver' flaw -- the exploit occurred when someone moused over a link," according to Twitter's blog post.

"onMouseOver" is a feature in JavaScript that allows script to run when a user moves its mouse cursor over a link. Then the user would inadvertently tweet a message.

Then other users added code that forced victim accounts to retweet the original tweet without their knowledge, according to Twitter. Twitter says only Twitter.com was affected and not its mobile site. User account information wasn't compromised in the attack, which mostly was used for spamming purposes, according to Twitter.

That second step was a CSRF attack, which is often paired with XSS in a deadly one-two punch, security experts say. The pop-ups were basically a localized browser exploit, which was XSS. "But if the intended payload with Twitter forced end users to request to Twitter to update their status, and it uploads their status ... it propagates and becomes a CSRF," SpiderLabs' Barnett says. "Twitter doesn't know rogue malware is doing it."

Aside from fixing the XSS bug, he says, Twitter should also be checking its CSRF defenses. "Because this is made wormable, that means that Twitter needs to go back and look at its CSRF defense," he says. "How can we make sure if [a user is] posting a status updated that this legitimately came from our [Twitter's] site and that the user intended to do this?"

Barnett says Twitter does have some CSRF mitigation features, namely a CSRF "token." "But unless they can stamp out the underlying XSS [vulnerability], the code people can scrape the CSRF token and take it. They need to address both" XSS and CSRF, he says.

Why are XSS bugs so difficult to avoid in code? Aside from a lack of knowledge about it among many developers, XSS is especially a risk to Web 2.0 applications such as Twitter because they often interface with widgets and other third-parties. It's not easy to accurately track user-supplied data and identify where it's being used securely, SpiderLabs' Barnett says.

Barnett says the resurfaced XSS flaw in the Twitter platform might have been a case of the fixes never getting fully ported to the code repositories. "This is probably a scenario where the security/developers implemented hotfixes/patches to mitigate the issue, however they never fully back-ported the fixes into the code repositories," he says. "When new code was developed and pushed into production, it reopened these vulnerabilities."

It's impossible to write completely clean and bulletproof software, SophosLabs' Jones notes. "Everyone is under time constraints; they have to get code in on deadlines," she says. So security isn't always part of the equation, she says.

Meanwhile, the XSS-CSRF attacks hit at a time when Twitter is migrating its user base to a new platform, a.k.a. "New Twitter." SophosLabs' Jones says she doesn't think the attackers' timing was a coincidence. "They did it deliberately to show that they don't think Twitter is ready ... or to give Twitter a black eye," Jones says.

A Twitter user with the handle "kinugawamasato" claims to have found the XSS bug. He tweeted today that he found the XSS bug, although other hacker members were scrambling to see who got to it first.

Twitter last summer suffered a Koobface worm infection, which led to the temporary suspension of user accounts found spreading the worm.

Have a comment on this story? Please click "Discuss" below. If you'd like to contact Dark Reading's editors directly, send us a message.

Kelly Jackson Higgins is Executive Editor at DarkReading.com. She is an award-winning veteran technology and business journalist with more than two decades of experience in reporting and editing for various publications, including Network Computing, Secure Enterprise ... View Full Bio

Comment  | 
Print  | 
More Insights
Register for Dark Reading Newsletters
White Papers
Cartoon
Current Issue
Dark Reading Tech Digest, Dec. 19, 2014
Software-defined networking can be a net plus for security. The key: Work with the network team to implement gradually, test as you go, and take the opportunity to overhaul your security strategy.
Flash Poll
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2014-8142
Published: 2014-12-20
Use-after-free vulnerability in the process_nested_data function in ext/standard/var_unserializer.re in PHP before 5.4.36, 5.5.x before 5.5.20, and 5.6.x before 5.6.4 allows remote attackers to execute arbitrary code via a crafted unserialize call that leverages improper handling of duplicate keys w...

CVE-2013-4440
Published: 2014-12-19
Password Generator (aka Pwgen) before 2.07 generates weak non-tty passwords, which makes it easier for context-dependent attackers to guess the password via a brute-force attack.

CVE-2013-4442
Published: 2014-12-19
Password Generator (aka Pwgen) before 2.07 uses weak pseudo generated numbers when /dev/urandom is unavailable, which makes it easier for context-dependent attackers to guess the numbers.

CVE-2013-7401
Published: 2014-12-19
The parse_request function in request.c in c-icap 0.2.x allows remote attackers to cause a denial of service (crash) via a URI without a " " or "?" character in an ICAP request, as demonstrated by use of the OPTIONS method.

CVE-2014-2026
Published: 2014-12-19
Cross-site scripting (XSS) vulnerability in the search functionality in United Planet Intrexx Professional before 5.2 Online Update 0905 and 6.x before 6.0 Online Update 10 allows remote attackers to inject arbitrary web script or HTML via the request parameter.

Best of the Web
Dark Reading Radio
Archived Dark Reading Radio
Join us Wednesday, Dec. 17 at 1 p.m. Eastern Time to hear what employers are really looking for in a chief information security officer -- it may not be what you think.