The bug has to do with the way that Facebook checked to make sure that browsers connecting with the site were the ones they claimed to be. Facebook's servers use code called a "post_form_id" token to check that the browser trying to do something -- liking a group, for example -- was actually the browser that had logged into the account. Facebook's servers check this token before making any changes to the user's page, but Keith discovered that when he simply deleted the token from messages, he could change many settings on any Facebook account.
"It's like putting locks on a bunch of stuff but not locking them," he said in an interview.
Keith could make users' private information public, change or read profile information, even add new contact email addresses, he said. "It's pretty bad; you can do a lot of damage with it," he said.
Facebook worked with Alert Logic to fix the bug, known as a cross-site request forgery (CSRF), Facebook spokesman Simon Axten confirmed in an email message. "It's now fixed," he said. "We're not aware of any cases in which it was used maliciously."
Facebook has been under a lot of heat recently by users who feel it hasn't done enough to protect their privacy, and embarrassing technical glitches like this don't help the social-networking company's case.
Earlier this month, Facebook had to temporarily pull its chat feature, after another bug let users eavesdrop on their friends' private chat sessions.