CacheWarp' AMD VM Bug Opens the Door to Privilege Escalation

Academics in Germany figured out how to reverse time in AMD virtualization environments, then reap the spoils.

2 Min Read
An AMD building
Source: michelmond via Alamy Stock Photo

Researchers have developed an exploit for AMD CPUs that allows attackers to undermine memory protections, and thereby escalate privileges or perform remote code execution (RCE) in cloud environments.

The issue lies with Secure Encrypted Virtualization (SEV), a seven-year-old extension for AMD's EPYC server processors. The promise of SEV is that users can deploy virtual machines (VMs) even within untrusted hypervisors — environments for running multiple VMs — by encrypting their memory with a key.

On Tuesday, though, a group of German scholars demonstrated in a paper how this security feature can, in fact, expose the very chips it's meant to protect, enabling attackers to roll back time and access exploitable data in memory.

This so-called "CacheWarp" vulnerability, assigned CVE-2023-20592, affects first- through third-generation EPYC processors (not fourth gen). It was granted a 5.3 "Medium" severity score by AMD.

What Is CacheWarp?

At the heart of CacheWarp is a single, exploitable instruction: "INVD." By manipulating INVD, a malicious hypervisor user can selectively wipe the CPU's cache at any given point, reverting it to an old state (hence the name "CacheWarp") with stale data.

At this point, possibilities abound.

"As a consequence, a malicious hypervisor can break into a guest VM without knowing any password," explains Ruiyi Zhang, one of the report's authors. On CacheWarp's website, his team provided a simple example for how it could go down:

"Assume you have a variable determining whether a user is successfully authenticated. By exploiting CacheWarp, an attacker can revert the variable to a previous state and thus take over an old (already authenticated) session. Furthermore, an attacker can revert the return addresses stored on the stack and, by that, change the control flow of a victim program," they explained.

In such a case, Zhang says, "they can achieve privilege escalation, get to the root of your VM, and, in the end, they can just do anything."

A Patch Is Now Available

The researchers first reached out to AMD in late April. On November 14 — the day CacheWarp was revealed, and a proof-of-concept (PoC) exploit released to GitHub — AMD released a microcode patch for third-generation EPYC chips. Unlike with recent transient execution bugs affecting similar chips, the patch isn't expected to cause any performance issues.

"No mitigation is available for the first or second generations of EPYC processors," AMD noted in a security bulletin, "since the SEV and SEV-ES [Encrypted State] features are not designed to protect guest VM memory integrity and the SEV-SNP [Secure Nested Paging] is not available."

When asked about the delay in releasing a patch, AMD told Dark Reading that "Coordinated Vulnerability Disclosure is standard practice in the industry to protect end users. Notification is made to the impacted parties, fixes are developed, then the bulletin and details are published."

About the Author(s)

Nate Nelson, Contributing Writer

Nate Nelson is a freelance writer based in New York City. Formerly a reporter at Threatpost, he contributes to a number of cybersecurity blogs and podcasts. He writes "Malicious Life" -- an award-winning Top 20 tech podcast on Apple and Spotify -- and hosts every other episode, featuring interviews with leading voices in security. He also co-hosts "The Industrial Security Podcast," the most popular show in its field.

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like

More Insights