CVE-2025-40300

Published Sep 11, 2025

Last updated 20 days ago

Overview

AI description

Automated description summarized from trusted sources.

CVE-2025-40300, also known as VMSCAPE, is a Spectre-based vulnerability that affects AMD Zen CPUs (Zen 1 through Zen 5) and Intel Coffee Lake processors. It exploits incomplete branch predictor isolation in cloud environments, allowing a malicious guest user to potentially leak secrets from the hypervisor in the host domain. This attack is the first of its kind to enable a malicious guest VM to leak arbitrary memory from an unmodified hypervisor without requiring code modifications. The VMSCAPE attack targets the KVM/QEMU virtualization stack, demonstrating how attackers can extract cryptographic keys and other sensitive infrastructure secrets. Researchers have shown that VMSCAPE can leak memory data at a rate of 32 bytes per second, potentially extracting disk encryption keys in approximately 18 minutes on AMD Zen 4 processors. The vulnerability stems from the incomplete isolation of branch prediction state across virtualization boundaries, specifically between guest and host user processes. Linux kernel developers have released patches to mitigate VMSCAPE by adding an Indirect Branch Prediction Barrier (IBPB) on VMEXIT.

Description
In the Linux kernel, the following vulnerability has been resolved: x86/vmscape: Add conditional IBPB mitigation VMSCAPE is a vulnerability that exploits insufficient branch predictor isolation between a guest and a userspace hypervisor (like QEMU). Existing mitigations already protect kernel/KVM from a malicious guest. Userspace can additionally be protected by flushing the branch predictors after a VMexit. Since it is the userspace that consumes the poisoned branch predictors, conditionally issue an IBPB after a VMexit and before returning to userspace. Workloads that frequently switch between hypervisor and userspace will incur the most overhead from the new IBPB. This new IBPB is not integrated with the existing IBPB sites. For instance, a task can use the existing speculation control prctl() to get an IBPB at context switch time. With this implementation, the IBPB is doubled up: one at context switch and another before running userspace. The intent is to integrate and optimize these cases post-embargo. [ dhansen: elaborate on suboptimal IBPB solution ]
Source
416baaa9-dc9f-4396-8d5f-8c081fb06d67
NVD status
Modified
Products
linux_kernel, debian_linux

Risk scores

CVSS 3.1

Type
Primary
Base score
5.5
Impact score
3.6
Exploitability score
1.8
Vector string
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Severity
MEDIUM

Weaknesses

nvd@nist.gov
NVD-CWE-noinfo

Social media

Hype score
Not currently trending
  1. Critical Security Patch for #Ubuntu 22.04 LTS on AWS The USN-7861-4 advisory details patches for multiple Linux kernel vulnerabilities, including the high-severity VMSCAPE flaw (CVE-2025-40300). Read more: 👉 https://t.co/AiCVtMz1Gb #Security https://t.co/cz6WFVD9iO

    @Cezar_H_Linux

    20 Nov 2025

    27 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  2. ⚠️ CVE-2025-40300 - Ubuntu Xilinx ZynqMP VMSCAPE Info Exposure Ubuntu systems running on Xilinx ZynqMP SoCs are vulnerable to VMSCAPE side-channel attacks (CVE-2025-40300). What's clever: attackers exploit timing variations in the ARM TrustZone Secure Monitor Call interfac

    @the_c_protocol

    14 Nov 2025

    1 Impression

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  3. 🚨 CVE-2025-40300 In the Linux kernel, the following vulnerability has been resolved: x86/vmscape: Add conditional IBPB mitigation VMSCAPE is a vulnerability that exploits insufficient branch predictor isolation between a guest and a userspace hypervisor (like QEMU). Existing

    @AnonOzzyDude

    14 Nov 2025

    175 Impressions

    2 Retweets

    3 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  4. "vulnérable à BPI et VMScape (CVE-2025-40300) sur Coffee Lake+ ; patches microcode requis."

    @Kraal11118

    22 Oct 2025

    18 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  5. Actively exploited CVE : CVE-2025-40300

    @transilienceai

    5 Oct 2025

    29 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    1 Reply

    0 Quotes

  6. VMScape: la nueva vulnerabilidad que rompe el aislamiento entre máquinas virtuales y el hipervisor https://t.co/PJzn0oo0nX Investigadores de la ETH de Zúrich dieron a conocer mediante una publicación de blog, un nuevo ataque denominado VMScape (CVE-2025-40300), capaz de eludir

    @laboratoriolinu

    27 Sept 2025

    31 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  7. ⚠️ VMScape (CVE-2025-40300) : une vulnérabilité de type Spectre permet à une VM de compromettre l’hyperviseur (hôte) sur CPU Intel & AMD via KVM/QEMU. Un patch Linux (IBPB-on-VMEXIT) est déjà dispo. #cybersécurité #Linux #Virtualisation 👉 https://t.co/FwNG

    @Guardia_School

    20 Sept 2025

    259 Impressions

    2 Retweets

    3 Likes

    1 Bookmark

    0 Replies

    0 Quotes

  8. VMScape (CVE-2025-40300): Spectre-BTI Breaks VM Isolation — What Cloud & Virtualization Teams Must Do Now. Read the full report on - https://t.co/89mAWtoL5s https://t.co/usw0dQnfVi

    @cyberbivash

    15 Sept 2025

    8 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  9. 🗣️ VMScape (CVE-2025-40300): A New CPU Flaw Threatens Cloud Security https://t.co/fjIWR1Jch9

    @fridaysecurity

    15 Sept 2025

    60 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  10. 仮想マシンからホスト環境へ直接侵入する新たな投機的実行攻撃「VMSCAPE」が確認された。暗号鍵などの機密情報が盗まれる恐れがあり、クラウド基盤に深刻な影響を及ぼす。 この脆弱性(CVE-2025-40300)はAMD Z

    @yousukezan

    11 Sept 2025

    5170 Impressions

    15 Retweets

    31 Likes

    17 Bookmarks

    0 Replies

    0 Quotes

  11. CVE-2025-40300 In the Linux kernel, the following vulnerability has been resolved: x86/vmscape: Add conditional IBPB mitigation VMSCAPE is a vulnerability that exploits insufficie… https://t.co/4gW6S2WV2H

    @CVEnew

    11 Sept 2025

    552 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  12. New VMScape attack breaks guest-host isolation on AMD, Intel CPUs / CVE-2025-40300 / AMD has released a security bulletin about the problem. intel?! https://t.co/FFq8LMWxQH

    @JensHilbig

    11 Sept 2025

    31 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

Configurations

  1. In the Linux kernel, the following vulnerability has been resolved: cgroup: Avoid iteration of dying tasks with zero refcount The commit 260fbcb92bbea ("cgroup: Move dying_tasks cleanup from cgroup_task_release() to cgroup_task_free()") extended the lifetime of tasks on the dying_tasks list. The iterators have provision to go through dying_tasks because of dying threadgroup leaders or explicit CSS_TASK_ITER_WITH_DEAD, however, it was expected that such tasks can obtain a new reference (that is possible before cgroup_task_release()/put_task_struct_rcu_user()). The tasks after cgroup_task_release() and before cgroup_task_free() are subject to race when they may or may not have ->usage count > 0. The race window is between css_task_iter_next() invocations when css_set_lock is released and we may arrive at a new ->task_pos. The iterator should not attempt to resurrect tasks whose ->usage count dropped to zero. (When that happens, __put_task_struct_rcu_cb() is already imminent and the returned task_struct would could be used after free.) As for the fix, we cannot simply check the signal->live count of a task on the dying list because that won't distinguish regular zombies waiting to be reaped from RCU remnant tasks that are going to be free'd. Therefore add an extra check to rule out ->usage==0 tasks from any iteration. The repeat: loop in css_task_iter_advance() doesn't consider ->usage count, so add a new loop to css_task_iter_next() to skip de-used tasks on the dying_list. Rough illustration of the possible race R (reader of cgroup.procs) T (thread) L (group leader) --------------------------------- -------------------------------- -------------------------------- L exits, signal->live > 0 cgroup_task_dead(L) css_set_skip_task_iters() // skips only cset->tasks list_add_tail(&L->cg_list, &cset->dying_tasks) css_task_iter_next() take css_set_lock css_task_iter_advance() leader && signal->live != 0 => it->task_pos = &L->cg_list release css_set_lock T exits --signal->live == 0 cgroup_task_dead(T) // css_set_lock release_task(T) cgroup_task_release(T) release_task(L) // zap_leader cgroup_task_release(L) put_task_struct_rcu_user(L) ...RCU... put_task_struct(L) L->usage = 0 /* L still on dying_tasks */ ...RCU... __put_task_struct(L) css_task_iter_next() // another iteration take css_set_lock it->task_pos = &L->cg_list get_task_struct(L) => addition on 0 drop css_set_lock cgroup_task_free(L) css_set_skip_task_iters() // dying skip comes too late free_task(L) cgroup_procs_show() task_pid_vnr(L)•CVE-2026-98163

References

Sources include official advisories and independent security research.