When Chrome briefly exposes its master key: VoidStealer v2.0 uses debugger hardware breakpoints to extract it
VoidStealer v2.0 demonstrates a concrete condition under which Chrome’s Application-Bound Encryption (ABE) can be bypassed: if the browser places the v20_master_key into user-mode registers during decryption, a debugger that sets hardware breakpoints can capture that key without SYSTEM privileges or code injection.
How VoidStealer v2.0 captures the master key during Chrome startup
The attack starts by launching a hidden, suspended Chrome process and attaching to it as a debugger. VoidStealer waits for chrome.dll and other startup DLLs to load, scans memory for instructions that reference the target string associated with the v20_master_key, and then sets hardware breakpoints on those instructions across browser threads. When Chrome executes the decryption path (for cookies or saved passwords), the breakpoint fires and the malware captures the plaintext key from CPU registers and thread context using ReadProcessMemory—without elevating to SYSTEM or injecting code into Chrome.
This method sidesteps the Google Chrome Elevation Service that Chrome introduced with ABE in Chrome 127 (mid-2024). The Elevation Service is designed to keep the master key protected behind a privileged service, but it cannot prevent the brief moment when that key is populated in user-mode state for legitimate decryption. By exploiting that narrow timing window with debugger-driven hardware breakpoints, VoidStealer reduces the noisy artifacts that typically trigger endpoint detection—no large memory dumps, no remote code execution, and no token stealing are required for the extraction step.
Where this matters for attacker trade-offs and how it compares to other bypasses
Packaging this technique into a malware-as-a-service offering (VoidStealer has been observed in the wild since late 2025) lowers the technical bar for attackers: criminals who buy access to the MaaS can steal browser secrets at scale without needing admin skills. Other families—Lumma, Meduza, Whitesnake, Vidar—have claimed ABE bypasses through more traditional means, while EDDIESTEALER has implemented Rust-based memory-dumping workflows derived from tools like ChromeKatz and runs social-engineering campaigns (the ClickFix campaign) that target Windows, macOS, iOS, and Android.
| Method | Requires SYSTEM/Admin | Code injection | Typical detection footprint | Example |
|---|---|---|---|---|
| Debugger + hardware breakpoints (register capture) | No | No | Low — stealthy, timing-based | VoidStealer v2.0 |
| Process injection / DLL injection | Sometimes | Yes | High — injection artifacts, API hooks | Many historical infostealers |
| Privilege escalation / token theft | Yes | No | High — account/service compromise | Some Whitesnake variants |
| Rust-based memory dumping / ChromeKatz-style | Depends | No | Medium — large memory reads, suspicious file behavior | EDDIESTEALER |
Practical checkpoints for defenders and what to watch next
Immediate detection work should focus on behaviors that this technique relies on: creation of suspended or hidden Chrome processes, debugger attachments to chrome.exe, and unusual ReadProcessMemory or thread-context reads that target chrome processes. Because legitimate debuggers exist, alerts will need context: repeated breakpoint sets on decryption-related code paths, scanning for instruction patterns that reference v20_master_key, and telemetry showing coordinated breakpoints across multiple threads are stronger signals than a single debugger event.
Watch for how Google responds. Chrome’s ABE and the Google Chrome Elevation Service can be changed in two practical ways: either by ensuring the master key never appears in user-mode registers during decryption, or by adding telemetry and hardening that detects debugger-driven hardware breakpoints. Google has not publicly detailed patches for debugger-based bypasses; the next checkpoint is whether Chrome updates (or Elevation Service changes) explicitly target debugger attachment patterns or timing-based register exposure.
Short Q&A
Does VoidStealer need admin rights to work? No — the observed debugger-breakpoint technique captures the key from user-mode state and does not require SYSTEM or elevated tokens.
Can Chrome fix this without breaking ABE? Yes — fixes range from zeroing sensitive registers quickly, changing where decryption occurs, or adding checks that detect debugger breakpoints during decryption. Each option has trade-offs in complexity and compatibility.
What immediate signals should defenders hunt for? Look for hidden/suspended Chrome processes, debugger attach events to chrome.dll, anomalous ReadProcessMemory calls against Chrome processes, and MaaS-related payload distribution indicators tied to VoidStealer or EDDIESTEALER campaigns.

