For the past 24 hours, Twitter engineers have been fighting a gaping hole that makes it easy for hackers to hijack the accounts of users who do nothing more than view a booby-trapped message.
So far, the hole is winning.
"With a few minutes work, someone with a bit of technical expertise could make a Twitter 'application' and start sending tweets with it," Slater wrote here on Wednesday. "Simply by seeing one of these tweets, code can be run inside your browser impersonating you and doing anything that your browser can do."
"That's a pretty big oversight," said Jeff Williams, CEO of web application security firm Aspect Security. "It's not uncommon when companies move from web services to APIs. They don't take the same level of security scrutiny and apply it to the interface."
Slater put it a little more forcefully. "Twitter made one of the most basic mistakes in developing web applications - never blindly trust data that is provided from the outside world!" he wrote. "Their form did no - or some very, very basic - checking on what you enter in the box."
Twitter's first stab at fixing the bug involved code that invalidated any links in the box that contained spaces, said Aviv Raff, a researcher whose recent month of Twitter bugs spent 30 days documenting more than 50 vulnerabilities affecting the site. Like Slater, he was able to bypass the fix by including URLs that contained no spaces.
"Not so smart [a] way to fix a vulnerability," he said.
What that means is that if you use many web browsers to view Twitter, it's possible, at least at time of writing, for someone to change your profile settings, send a message to all of your followers that appears to come from you or to steal cookies Twitter uses to help authenticate you. People who use third party apps to view tweets are less vulnerable, as are those who use Internet Explorer 8 and Firefox with the NoScript plugin. (In this case, a test account we used was successfully attacked using the latest version of IE, and Raff says NoScript isn't likely to fare any better.)
The alacrity Twitter showed in trying to fix the bug suggests its security team is getting more serious about fortifying the heavily trafficked site. And for that, they deserve a pat on the back.
But the failure shows the team still has work ahead of it.
It's also worth mentioning that many of the third-party applications used to send and receive tweets remain woefully insecure, according to Raff, who said a dozen or so of the bugs he discovered remain unpatched. They reside in apps such as HootSuite, TweetGrid, tr.im, TweetDeck and Twhirl. The common denominator among almost all of them: the Twitter API.
The API is so "easy to implement, that even novice developers can use it," he told The Register. "Which means that insecure apps are being developed." ®