Researcher exploits design flaws in Web caching to take control of popular websites, frameworks – and the Mozilla Firefox browser infrastructure.
A newly discovered attack forces Web cache servers to deliver malicious content to website visitors – and also exposes a major security hole in Mozilla’s Firefox browser infrastructure.
James Kettle, head of research at PortSwigger Web Security, exploited security weaknesses in the design of website infrastructure to hack the Web caches of major sites and platforms: a US government agency, a popular cloud platform provider, a hosting platform provider, a software product, a video game, an investment firm’s investor information, and some online stores.
“It’s sort of a design flaw in the way caching and websites work,” Kettle says of the security issues. “It’s not specific to any given technology or any given cache.”
In his research, Kettle also stumbled on a flaw in an API used in Firefox’s infrastructure that allowed him to take partial control of tens of millions of browsers using his cache-attack method. “I call it a low-fat botnet because I didn’t have complete control over Firefox, but I had a bit of control,” he says.
Kettle is holding back much of the secret sauce of the Web-caching hack as well as his Web targets until his Black Hat USA talk in August. But he does say that with his attack, he can force a cache into behaving in an unsavory way without directly targeting it.
It basically works like this: Kettle sends a request to the website with his payload. “The website then replies with something potentially dangerous … and the cache takes that, so then anyone who visits after that gets hit by the exploit,” he says.
Web caches sit in front of websites and serve up stored content rather than all of the delivery coming via the live website. Kettle says the complexity of those caches and content-delivery networks built around many of today’s Web applications can actually leave them open to abuse.
Previous research in Web cache security has encompassed injecting headers, or tricking the cache into saving and sharing sensitive data, Kettle says. His attack differs because it forces the cache to serve up exploits to website visitors, he notes.
An attacker could use it to plant malware that steals passwords or payment-card information from a website when visitors came to the site. The attack could also be employed to deface a website or redirect a visitor to a malicious site.
With Firefox, Kettle employed his cache-poisoning attack against the infrastructure behind the browser that checks for and sends application and plug-in updates as well as URLs of dangerous websites to block, for example. “I found by accident … that I was able to use cache poisoning to effectively input” some limited commands to Firefox browser users worldwide, he says. “If you opened Firefox, I got control of it.”
Mozilla fixed the flaw within 24 hours of his reporting it, in a Jan. 25 update.
When Firefox starts up, it sends a request to the Mozilla infrastructure for updates and other information. “By using cache poisoning, I could control the response to that message,” Kettle says. That could allow an attacker to install certain extensions and corral Firefox browsers into a botnet to wage distributed denial-of-service (DDoS) attacks, for example.
Kettle says abusing the Firefox flaw alone would be less useful to an attacker than chaining an attack with another exploit and gaining full control of the browsers.
As of this posting, Mozilla had not responded to a request for comment on Kettle’s research.
At Black Hat Kettle plans to release the open-source utility he created for his research, an adapted Burp Suite tool that scans Web infrastructures for cache-poisoning weaknesses, he says.