· via Hacker News – Front Page (hnrss.org)
Xbox 360 Bad Update hypervisor exploit now runs in seconds with near-100% success
Community improvements to the Xbox 360 Bad Update hypervisor exploit cut run time from about 20 minutes at roughly 30% reliability to seconds at near-100% success, and remove the disc requirement.

What changed
A proof-of-concept attack against the Xbox 360's hypervisor has gone from a slow, unreliable demo to a fast, dependable one. According to the third post in the Hacking the Xbox 360 Hypervisor series published on icode4.coffee and surfaced on the Hacker News front page, the Bad Update exploit originally took roughly 20 minutes per attempt and succeeded only about 30 percent of the time. After two rounds of community contributions, it now completes in seconds with a success rate close to 100 percent.
A disc-free entry point via Rock Band Blitz
The first major improvement came from contributors going by ihatecompvir and InvoxiPlayGames, who built a new entry point called DaTArrest inside the free demo version of Rock Band Blitz. As the post explains, the demo is a package file originally downloaded from the Xbox Live store to the console's hard drive or memory unit. When Microsoft added USB storage support to the 360, packages signed to run from internal storage were grandfathered in to also boot from USB sticks. The demo can therefore be copied to any USB stick as an ordinary file and launched from the dashboard of any console running a compatible software version.
By exploiting memory corruption vulnerabilities in the game's DLC parsing code, the pair crafted a game save that bootstraps the second-stage ROP chain of Bad Update and kicks off the hypervisor exploit chain. The practical effect is significant: the attack no longer needs the Tony Hawk American Wasteland game disc that earlier versions depended on. Running the exploit is now, in the author's description, as simple as copying files to a USB stick, plugging it into the console, and launching Rock Band Blitz.
Speeding up the race condition
The second improvement arrived as a pull request from a contributor named Máté, who optimised the race condition at the heart of the hypervisor attack. Three changes did the work: a hash table that precomputes and stores the malicious ciphertext values the exploit needs, a better cache flushing primitive, and improved scheduling between the thread running the XKE update payload and the thread performing the ciphertext overwrite. Together they cut execution time down to a few seconds and pushed the success rate of the race up dramatically.
Why the original PoC skipped the lookup table
The hash table addresses a limitation of the original proof of concept. Bad Update attacks the console's encrypted memory by using hypervisor APIs to create encrypted allocations at predetermined addresses, then capturing the ciphertext for chosen plaintext through two different memory pathways. The encryption scheme's whitening value is 12 bits wide, which means any given plaintext has 1024 possible ciphertexts — but the original PoC generated ciphertext for just one of them.
The author is candid about why. An early prototype did try a lookup table, but it failed for a subtle reason: the 2011-era hypervisor build the research started on performed a TLB flush inside the hypervisor function that sets up memory encryption. Later builds removed that flush because the kernel wrapper around the function already does one — and Bad Update calls the hypervisor syscall directly, skipping the wrapper. With the TLB lazily loaded, the whitening bits went stale and the ciphertext read back from memory was invalid. When the table also misbehaved on the latest (17559) hypervisor, the author, consumed by chasing CPU cache issues, shelved it and moved on. The post closes that thread with a self-critique: the right move would have been to investigate the failures when they appeared, or set the project aside and return with a clear head.
How the hash table works
The lookup structure uses the first N bits of the ciphertext the exploit expects to see in memory as an index into two arrays. The first array stores the leading 64 bits of the oracle ciphertext, used to validate an entry in case of a hash collision; the second stores the malicious ciphertext that will be written into memory. Because the code is racing the CPU and its caches, collisions are simply skipped rather than handled with buckets — redoing an iteration is cheaper than the added complexity. Máté's original pull request used a 10-bit key; the author widened it to 20 bits, which keeps collisions at zero or low single digits at a cost of roughly 24MB of memory for the two tables.
Why it matters
For console security research, reliability is the difference between a curiosity and a usable result. A hypervisor exploit that fires almost instantly and succeeds almost every time turns Bad Update from an impressive demo into a practical foundation for further work — and part 4 of the series, covering a new peer pressure exploit, is already promised.
The Rock Band Blitz entry point matters just as much. A free demo package that can be copied to any USB stick and launched from the dashboard removes the dependency on a specific retail game disc. On a console long out of production, lowering the barrier to entry has real value for homebrew and software preservation.
There is also a quieter lesson for exploit developers: the lookup table failed not because the idea was wrong, but because a small behavioural difference between hypervisor builds — a removed TLB flush — silently corrupted its results. Revisiting abandoned assumptions with fresh eyes turned out to be worth moving the exploit from minutes of waiting to seconds.
- #xbox-360
- #security
- #exploit
- #hypervisor
- #reverse-engineering