Blizzard games – played every month by half a billion netizens, apparently – could be hijacked by malicious websites visited by gamers, according to Google's Project Zero team.
Googler Tavis Ormandy spotted the vulnerability in the Blizzard Update Agent, which is installed alongside all Blizzard titles. This particular application allows games to fetch and install upgrades and patches on the fly. The update engine also accepts commands to change settings, perform maintenance, and so on.
The code does this by running a JSON RPC HTTP server on port 1120, and uses a customized authentication system to check that whatever is asking it to make changes is authorized to do so. Script code on webpages can talk to the local server using
XMLHttpRequest(), yet the mechanism can be bypassed.
"I don't think this design will work because of an attack called DNS rebinding," Ormandy explained in his advisory.
"Any website can simply create a dns name that they are authorized to communicate with, and then make it resolve to localhost. To be clear, this means that any website can send privileged commands to the agent. Exploitation would involve using network drives, or setting destination to 'Downloads' and making the browser install dlls, datafiles, etc."
Ormandy wrote a proof-of-concept exploit, and found that a successful attack should take about 15 minutes, but could be speeded up by forcing a DNS cache eviction. He warned Blizzard in early December, exchanged messages, and then the biz froze him out.
The games maker then silently hacked in a fix to its software: rather than white list its backend update server hostnames, it instead black lists common browsers from talking to the update mechanism.
"Blizzard were replying to emails, but stopped communicating on December 22nd," Ormandy reported.
"Blizzard are no longer replying to any enquiries, and it looks like in version 5996 the agent now has been silently patched with a bizarre solution. Their solution appears to be to query the client command line, get the 32-bit FNV-1a string hash of the exe name, and then check if it's in a blacklist. I proposed they whitelist hostnames, but apparently that solution was too elegant and simple.
"I'm not pleased that Blizzard pushed this patch without notifying me, or consulted me on this."
Blizzard is taking a similarly silent approach to answering press questions on the topic from The Reg. We'll update as soon as the games giant decides to comment. Ormandy has already said he's checking other big games vendors to see if the problem can be replicated. ®