CVE-2025-38560 (GCVE-0-2025-38560)
Vulnerability from cvelistv5
Published
2025-08-19 17:02
Modified
2026-08-05 12:02
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: x86/sev: Evict cache lines during SNP memory validation An SNP cache coherency vulnerability requires a cache line eviction mitigation when validating memory after a page state change to private. The specific mitigation is to touch the first and last byte of each 4K page that is being validated. There is no need to perform the mitigation when performing a page state change to shared and rescinding validation. CPUID bit Fn8000001F_EBX[31] defines the COHERENCY_SFW_NO CPUID bit that, when set, indicates that the software mitigation for this vulnerability is not needed. Implement the mitigation and invoke it when validating memory (making it private) and the COHERENCY_SFW_NO bit is not set, indicating the SNP guest is vulnerable.
Impacted products
Vendor Product Version
Linux Linux Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Version: 4f9c403e44e5e88feb27d5e617d1adc9cc7ef684
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T17:39:49.648Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/boot/cpuflags.c",
            "arch/x86/boot/startup/sev-shared.c",
            "arch/x86/coco/sev/core.c",
            "arch/x86/include/asm/cpufeatures.h",
            "arch/x86/include/asm/sev.h",
            "arch/x86/kernel/cpu/scattered.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1fec416c03d0a64cc21aa04ce4aa14254b017e6a",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            },
            {
              "lessThan": "1fb873971e23c35c53823c62809a474a92bc3022",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            },
            {
              "lessThan": "aed15fc08f15dbb15822b2a0b653f67e76aa0fdf",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            },
            {
              "lessThan": "a762a4c8d9e768b538b3cc60615361a8cf377de8",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            },
            {
              "lessThan": "f92af52e6dbd8d066d77beba451e0230482dc45b",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            },
            {
              "lessThan": "7b306dfa326f70114312b320d083b21fa9481e1e",
              "status": "affected",
              "version": "4f9c403e44e5e88feb27d5e617d1adc9cc7ef684",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/boot/cpuflags.c",
            "arch/x86/boot/startup/sev-shared.c",
            "arch/x86/coco/sev/core.c",
            "arch/x86/include/asm/cpufeatures.h",
            "arch/x86/include/asm/sev.h",
            "arch/x86/kernel/cpu/scattered.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.19"
            },
            {
              "lessThan": "5.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.148",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.102",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.42",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.16.*",
              "status": "unaffected",
              "version": "6.16.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.148",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.102",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.42",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.10",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16.1",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/sev: Evict cache lines during SNP memory validation\n\nAn SNP cache coherency vulnerability requires a cache line eviction\nmitigation when validating memory after a page state change to private.\nThe specific mitigation is to touch the first and last byte of each 4K\npage that is being validated. There is no need to perform the mitigation\nwhen performing a page state change to shared and rescinding validation.\n\nCPUID bit Fn8000001F_EBX[31] defines the COHERENCY_SFW_NO CPUID bit\nthat, when set, indicates that the software mitigation for this\nvulnerability is not needed.\n\nImplement the mitigation and invoke it when validating memory (making it\nprivate) and the COHERENCY_SFW_NO bit is not set, indicating the SNP\nguest is vulnerable."
        }
      ],
      "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 attacker is a malicious or compromised hypervisor co-resident on the physical machine attacking an SEV-SNP guest; there is no network protocol involved, only local platform-level access to the victim guest\u0027s memory and page-state-change handling.\nAC:L - The hypervisor controls every element of the attack \u2014 it owns the page while shared and chooses the data left in dirty cache lines, it services the PSC VMGEXIT so it knows exactly when the guest validates, and it controls vCPU scheduling and cache pressure to drive writeback; the window recurs on every private transition (boot, memory acceptance, every set_memory_encrypted) and can be retried indefinitely.\nPR:N - The vulnerable component is the SNP guest kernel, and the attacking hypervisor holds no credentials or privileges whatsoever inside that guest \u2014 it is outside the guest\u0027s security authority entirely, matching the PR:N used for other confidential-computing guest-hardening CVEs in this tree.\nUI:N - Page-state changes to private happen automatically during kernel decompression, early boot, unaccepted-memory acceptance and DMA/SWIOTLB teardown; no action by any guest user or administrator is required.\nS:C - The missing eviction defeats the SEV-SNP memory-integrity guarantee, letting code in the host security authority modify memory inside the guest security authority \u2014 the confidential-computing trust boundary is crossed.\nC:H - An attacker-chosen overwrite of guest private kernel memory is trivially leveraged into code execution inside the guest, exposing all of the confidential VM\u0027s secrets including keys and attestation material.\nI:H - This is a direct arbitrary-write primitive into validated guest private memory with hypervisor-chosen content \u2014 AMD describes the impact as the hypervisor being able to overwrite SEV-SNP guest memory with loss of data integrity.\nA:H - Silent corruption of guest private pages, including kernel text, page tables and early-boot data, readily produces guest kernel panics, SNP termination or an unbootable VM."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:02:54.210Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1fec416c03d0a64cc21aa04ce4aa14254b017e6a"
        },
        {
          "url": "https://git.kernel.org/stable/c/1fb873971e23c35c53823c62809a474a92bc3022"
        },
        {
          "url": "https://git.kernel.org/stable/c/aed15fc08f15dbb15822b2a0b653f67e76aa0fdf"
        },
        {
          "url": "https://git.kernel.org/stable/c/a762a4c8d9e768b538b3cc60615361a8cf377de8"
        },
        {
          "url": "https://git.kernel.org/stable/c/f92af52e6dbd8d066d77beba451e0230482dc45b"
        },
        {
          "url": "https://git.kernel.org/stable/c/7b306dfa326f70114312b320d083b21fa9481e1e"
        }
      ],
      "title": "x86/sev: Evict cache lines during SNP memory validation",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38560",
    "datePublished": "2025-08-19T17:02:37.792Z",
    "dateReserved": "2025-04-16T04:51:24.025Z",
    "dateUpdated": "2026-08-05T12:02:54.210Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…