CVE-2026-63937 (GCVE-0-2026-63937)

Vulnerability from cvelistv5 – Published: 2026-07-19 14:55 – Updated: 2026-08-05 12:37
VLAI
Title
KVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer Use READ_ONCE() when reading entries/indices from the guest-accessible Page State Change buffer to defend against TOCTOU bugs. Don't bother with READ_ONCE()/WRITE_ONCE() for cases where KVM is writing (and not consuming the result!), as the guest isn't supposed to touch the buffer while it's being processed. I.e. using READ_ONCE() is all about protecting against misbehaving guests.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 9b54e248d2644be71cb394eb85f31ad99e023a05 , < bd232801ef1d1fd985d2d4ca3cd1d888303ca86f (git)
Affected: 9b54e248d2644be71cb394eb85f31ad99e023a05 , < b1dfaa6f7a957726a6800135be3659fbe4bbf2a4 (git)
Affected: 9b54e248d2644be71cb394eb85f31ad99e023a05 , < edbbe88f83b524434974e84808d3093199d67c24 (git)
Affected: 9b54e248d2644be71cb394eb85f31ad99e023a05 , < c8cc238093ca6c99267032f6cfe78f59389f3157 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.93 , ≤ 6.12.* (semver)
Unaffected: 6.18.35 , ≤ 6.18.* (semver)
Unaffected: 7.0.12 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kvm/svm/sev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "bd232801ef1d1fd985d2d4ca3cd1d888303ca86f",
              "status": "affected",
              "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
              "versionType": "git"
            },
            {
              "lessThan": "b1dfaa6f7a957726a6800135be3659fbe4bbf2a4",
              "status": "affected",
              "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
              "versionType": "git"
            },
            {
              "lessThan": "edbbe88f83b524434974e84808d3093199d67c24",
              "status": "affected",
              "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
              "versionType": "git"
            },
            {
              "lessThan": "c8cc238093ca6c99267032f6cfe78f59389f3157",
              "status": "affected",
              "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kvm/svm/sev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.93",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.35",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.93",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.35",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.12",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer\n\nUse READ_ONCE() when reading entries/indices from the guest-accessible\nPage State Change buffer to defend against TOCTOU bugs.\n\nDon\u0027t bother with READ_ONCE()/WRITE_ONCE() for cases where KVM is writing\n(and not consuming the result!), as the guest isn\u0027t supposed to touch the\nbuffer while it\u0027s being processed.  I.e. using READ_ONCE() is all about\nprotecting against misbehaving guests."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires code execution inside an SEV-SNP guest that issues VMGEXIT PSC events into the host KVM hypervisor; this is local access to the host kernel via a guest-controlled hypercall path, not a remote network protocol.\nAC:L - The attacker fully controls the guest-accessible PSC buffer and can trigger concurrent VMGEXITs or use multiple vCPUs to modify indices/entries between KVM\u0027s validation read and later use, reliably winning the TOCTOU race without depending on uncontrollable host conditions.\nPR:L - The attacker only needs the ability to run code in an SEV-SNP guest on a KVM host (e.g., a cloud confidential-computing tenant), not real root or capabilities in the host\u0027s init namespace.\nUI:N - No victim interaction is required beyond the attacker operating their own malicious guest workload; PSC VMGEXITs are triggered programmatically from guest code.\nS:C - The vulnerable code runs in the host hypervisor but is reached from an untrusted guest; successful exploitation crosses the VM security boundary and can alter host-managed SEV-SNP page-state (RMP) for guest physical addresses.\nC:H - TOCTOU manipulation of PSC entries/indices can bypass validation and drive KVM_HC_MAP_GPA_RANGE on unvalidated GPA ranges, potentially flipping pages between private and shared and disclosing encrypted guest (or host-visible) memory beyond what was checked.\nI:H - The same TOCTOU allows inflating combined page ranges and operations passed to userspace, enabling unauthorized modification of page encryption attributes and corrupting hypervisor-managed memory state via misdirected MAP_GPA_RANGE processing.\nA:H - Incorrect indices and out-of-sync buffer state can cause invalid hypervisor processing, kernel warnings/panics, or repeated disruption of the host\u0027s KVM/SEV-SNP path; memory-corruption-class TOCTOU bugs are scored at full availability impact when exploitability is uncertain."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:37:24.499Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/bd232801ef1d1fd985d2d4ca3cd1d888303ca86f"
        },
        {
          "url": "https://git.kernel.org/stable/c/b1dfaa6f7a957726a6800135be3659fbe4bbf2a4"
        },
        {
          "url": "https://git.kernel.org/stable/c/edbbe88f83b524434974e84808d3093199d67c24"
        },
        {
          "url": "https://git.kernel.org/stable/c/c8cc238093ca6c99267032f6cfe78f59389f3157"
        }
      ],
      "title": "KVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-63937",
    "datePublished": "2026-07-19T14:55:34.554Z",
    "dateReserved": "2026-07-19T07:54:57.022Z",
    "dateUpdated": "2026-08-05T12:37:24.499Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-63937",
      "date": "2026-09-21",
      "epss": "0.00168",
      "percentile": "0.06501"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "arch/x86/kvm/svm/sev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "bd232801ef1d1fd985d2d4ca3cd1d888303ca86f",
                    "status": "affected",
                    "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b1dfaa6f7a957726a6800135be3659fbe4bbf2a4",
                    "status": "affected",
                    "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "edbbe88f83b524434974e84808d3093199d67c24",
                    "status": "affected",
                    "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "c8cc238093ca6c99267032f6cfe78f59389f3157",
                    "status": "affected",
                    "version": "9b54e248d2644be71cb394eb85f31ad99e023a05",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "arch/x86/kvm/svm/sev.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.11"
                  },
                  {
                    "lessThan": "6.11",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.93",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.35",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.0.*",
                    "status": "unaffected",
                    "version": "7.0.12",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer\n\nUse READ_ONCE() when reading entries/indices from the guest-accessible\nPage State Change buffer to defend against TOCTOU bugs.\n\nDon\u0027t bother with READ_ONCE()/WRITE_ONCE() for cases where KVM is writing\n(and not consuming the result!), as the guest isn\u0027t supposed to touch the\nbuffer while it\u0027s being processed.  I.e. using READ_ONCE() is all about\nprotecting against misbehaving guests."
          }
        ],
        "id": "CVE-2026-63937",
        "lastModified": "2026-07-27T17:44:23.777",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.0,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-07-19T16:17:12.193",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b1dfaa6f7a957726a6800135be3659fbe4bbf2a4"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/bd232801ef1d1fd985d2d4ca3cd1d888303ca86f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c8cc238093ca6c99267032f6cfe78f59389f3157"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/edbbe88f83b524434974e84808d3093199d67c24"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Awaiting Analysis"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-22T03:09:29+00:00",
      "cve": "CVE-2026-63937",
      "id": "CVE-2026-63937",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: KVM: SEV: Use READ_ONCE() when reading entries/indices from PSC buffer",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-63937.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-21T16:49:19Z",
      "cve": "CVE-2026-63937",
      "id": "CVE-2026-63937",
      "initial_release_date": "2026-07-21T13:03:10Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "342",
      "product_status:recommended": "228",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-63937",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-63937.json",
      "version": "9"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…