{"api_version":"1","generated_at":"2026-08-22T17:31:11+00:00","cve":"CVE-2026-72239","urls":{"html":"https://cve.report/CVE-2026-72239","api":"https://cve.report/api/cve/CVE-2026-72239.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-72239","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-72239"},"summary":{"title":"x86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\"","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\"\n\nRevert\n\n  99cf1fb58e68 (\"x86/virt/sev: Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\").\n\nSection 8.8 of the SNP spec says:\n\n  Before invoking SNP_INIT_EX with INIT_RMP set to 1, software must ensure\n  that no CPUs contain dirty cache lines for the memory containing the RMP.\n\nCachelines can be moved from cache to cache in a dirty state. The\nwbinvd_on_all_cpus() before SNP_INIT_EX flushes the caches for each CPU, but\nif the IPIs for WBINVD race with this dirty cacheline movement, it is possible\nthat they may not get flushed, violating the firmware requirement.\n\nDoing wbinvd_on_all_cpus() before setting SNPEn is safer since the RMP\ntable is not yet in use.\n\n  [ Heroically bisected by Srikanth. ]\n  [ bp: Massage commit message. ]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-15 06:21:50","updated_at":"2026-08-17 06:18:25"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"9.3","severity":"CRITICAL","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":9.3,"baseSeverity":"CRITICAL","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"9.3","severity":"CRITICAL","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","data":{"baseScore":9.3,"baseSeverity":"CRITICAL","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/e5158ff53fdff9c229bf13aa5f75eb17cdcfcd2d","name":"https://git.kernel.org/stable/c/e5158ff53fdff9c229bf13aa5f75eb17cdcfcd2d","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4c2509f3b79756679a02bea649c6a7501b58f52c","name":"https://git.kernel.org/stable/c/4c2509f3b79756679a02bea649c6a7501b58f52c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-72239","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72239","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 99cf1fb58e68291d408b4c4484181cf88f081857 e5158ff53fdff9c229bf13aa5f75eb17cdcfcd2d git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 99cf1fb58e68291d408b4c4484181cf88f081857 4c2509f3b79756679a02bea649c6a7501b58f52c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 7.1","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.5 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"72239","cve":"CVE-2026-72239","epss":"0.001680000","percentile":"0.064550000","score_date":"2026-08-17","updated_at":"2026-08-18 00:11:47"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["arch/x86/virt/svm/sev.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"e5158ff53fdff9c229bf13aa5f75eb17cdcfcd2d","status":"affected","version":"99cf1fb58e68291d408b4c4484181cf88f081857","versionType":"git"},{"lessThan":"4c2509f3b79756679a02bea649c6a7501b58f52c","status":"affected","version":"99cf1fb58e68291d408b4c4484181cf88f081857","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["arch/x86/virt/svm/sev.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"7.1"},{"lessThan":"7.1","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.5","versionStartIncluding":"7.1","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"7.1","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\"\n\nRevert\n\n  99cf1fb58e68 (\"x86/virt/sev: Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\").\n\nSection 8.8 of the SNP spec says:\n\n  Before invoking SNP_INIT_EX with INIT_RMP set to 1, software must ensure\n  that no CPUs contain dirty cache lines for the memory containing the RMP.\n\nCachelines can be moved from cache to cache in a dirty state. The\nwbinvd_on_all_cpus() before SNP_INIT_EX flushes the caches for each CPU, but\nif the IPIs for WBINVD race with this dirty cacheline movement, it is possible\nthat they may not get flushed, violating the firmware requirement.\n\nDoing wbinvd_on_all_cpus() before setting SNPEn is safer since the RMP\ntable is not yet in use.\n\n  [ Heroically bisected by Srikanth. ]\n  [ bp: Massage commit message. ]"}],"metrics":[{"cvssV3_1":{"baseScore":9.3,"baseSeverity":"CRITICAL","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","version":"3.1"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is in host-side SNP platform initialization via snp_prepare(), reached only during local boot-time KVM/SEV setup or privileged KVM_SEV_INIT/ioctl paths on /dev/kvm and /dev/sev, not from any network-facing handler.\nAC:L - The missing pre-SNPEn WBINVD creates a race where later WBINVD IPIs can miss dirty RMP cachelines; an attacker who can drive concurrent CPU/cache activity during init can influence this timing, and when uncertain we choose Low.\nPR:N - On typical SEV-SNP cloud hosts SNP init runs automatically at boot, so a malicious confidential VM tenant needs no host privileges to exploit latent incorrect RMP state that breaks guest/host memory isolation.\nUI:N - Exploitation does not require any victim user action such as opening files or mounting filesystems; the vulnerable initialization runs during host boot or privileged hypervisor setup without end-user interaction.\nS:C - Corrupt or inconsistent RMP initialization undermines the SEV-SNP memory-isolation boundary between confidential guests and the hypervisor, enabling cross-boundary impact beyond the initializing kernel component's security scope.\nC:H - Incorrect RMP table state from unflushed dirty cachelines can break private/shared page tracking and allow unauthorized reads of host or other guest memory across the confidentiality boundary on affected AMD SEV-SNP systems.\nI:H - RMP metadata corruption can mislabel page ownership and permissions, potentially permitting unauthorized writes or guest-controlled modification of hypervisor memory and enabling further compromise of the isolation model.\nA:H - Violating RMP initialization requirements can trigger fatal RMP faults (#PF) that crash the host kernel, and SNP init failures or inconsistent RMP state can deny availability of confidential VM services."}]}],"providerMetadata":{"dateUpdated":"2026-08-17T05:41:54.072Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/e5158ff53fdff9c229bf13aa5f75eb17cdcfcd2d"},{"url":"https://git.kernel.org/stable/c/4c2509f3b79756679a02bea649c6a7501b58f52c"}],"title":"x86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\"","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-72239","datePublished":"2026-08-15T05:54:28.166Z","dateReserved":"2026-08-09T03:40:39.914Z","dateUpdated":"2026-08-17T05:41:54.072Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-15 06:21:50","lastModifiedDate":"2026-08-17 06:18:25","problem_types":[],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":9.3,"baseSeverity":"CRITICAL","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":2.5,"impactScore":6}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"72239","Ordinal":"1","Title":"x86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCF","CVE":"CVE-2026-72239","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"72239","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\"\n\nRevert\n\n  99cf1fb58e68 (\"x86/virt/sev: Drop WBINVD before setting MSR_AMD64_SYSCFG_SNP_EN\").\n\nSection 8.8 of the SNP spec says:\n\n  Before invoking SNP_INIT_EX with INIT_RMP set to 1, software must ensure\n  that no CPUs contain dirty cache lines for the memory containing the RMP.\n\nCachelines can be moved from cache to cache in a dirty state. The\nwbinvd_on_all_cpus() before SNP_INIT_EX flushes the caches for each CPU, but\nif the IPIs for WBINVD race with this dirty cacheline movement, it is possible\nthat they may not get flushed, violating the firmware requirement.\n\nDoing wbinvd_on_all_cpus() before setting SNPEn is safer since the RMP\ntable is not yet in use.\n\n  [ Heroically bisected by Srikanth. ]\n  [ bp: Massage commit message. ]","Type":"Description","Title":"x86/virt/sev: Revert \"Drop WBINVD before setting MSR_AMD64_SYSCF"}]}}}