# Zenbleed: cross-process infoleak vulnerability in AMD Zen 2 Processors - everything you need to know

Improper vzeroupper handling during speculative execution in AMD Zen 2 lets an unprivileged local process read privileged memory, leaking passwords and keys.

- Payout: Research
- Severity: high
- Program: AMD Zen
- Write-up by: Wiz Research
- Disclosed: 2023-07-26
- CVE: CVE-2023-20593
- Write-up quality: 6/10
- Original: https://www.wiz.io/blog/zenbleed
- Library page: https://bugbountylibrary.com/r/blog%3Awiz-io-blog-zenbleed
- Tags: area:cloud domain:infra impact:data-leak impact:privesc kind:research platform:threat-intel sev:high tech:linux technique:fuzzing vuln:info-disclosure vuln:memory-corruption

**Target:** AMD Zen 2 CPU microarchitecture (vzeroupper speculative execution)
**Root cause:** Improper handling of the vzeroupper instruction during speculative execution leaves stale vector register state (use-after-free), allowing data from other processes to be read.
**Steps:**
1. Confirm host runs an AMD Zen 2 class CPU (`lscpu -J | grep 'Model name'`).
2. Check microcode version (`grep 'microcode' /proc/cpuinfo`); vulnerable if below 0x0830107A.
3. From an unprivileged local process, execute the exploit that abuses vzeroupper speculative handling to read stale vector register data.
4. Recover sensitive data (passwords, encryption keys) belonging to privileged processes, other containers, or VMs on the same host.
**How found:** Researcher used fuzzing and performance counters to identify specific hardware events, then validated with an 'Oracle Serialization' approach: comparing execution of randomly generated programs against their serialized oracle to reveal inconsistencies.
**Exploitation:** Attacker needs local code execution on an affected Zen 2 host; from an unprivileged process they read memory of privileged processes and cross-container/cross-VM data on the same node, enabling privilege escalation and cross-tenant data access.
**Escalation:** Cross-container and cross-VM leakage on multi-tenant nodes (K8s, cloud) raises impact from local infoleak to cross-tenant data exposure.
**Insight:** Differential fuzzing against a serialized oracle can surface microarchitectural state bugs that side-channel-focused testing misses; watch instructions like vzeroupper that manipulate vector register state speculatively.

