← Back to CVE Explorer

CVE-2026-98928

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2 pkvm_init_features_from_host() takes KVM_ARCH_FLAG_GUEST_HAS_SVE and KVM_ARM_VCPU_SVE from the host separately, but pkvm_vcpu_init_sve() tests the bit while vcpu_has_sve() reads the flag. A host that sets the flag without the bit gets a vCPU with a NULL sve_state that the world switch loads the guest's SVE state from. Derive the flag from the bit, and drop the protected path's copy of the host's flag, which is dead code since protected VMs are not allowed SVE.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-23 13:17:13.567000
Last modified
2026-10-23 13:17:13.567000
View original CVE JSON
{
  "id": "CVE-2026-98928",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-23T13:17:13.567",
  "lastModified": "2026-10-23T13:17:13.567",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2\n\npkvm_init_features_from_host() takes KVM_ARCH_FLAG_GUEST_HAS_SVE and\nKVM_ARM_VCPU_SVE from the host separately, but pkvm_vcpu_init_sve()\ntests the bit while vcpu_has_sve() reads the flag. A host that sets the\nflag without the bit gets a vCPU with a NULL sve_state that the world\nswitch loads the guest's SVE state from.\n\nDerive the flag from the bit, and drop the protected path's copy of the\nhost's flag, which is dead code since protected VMs are not allowed SVE."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "arch/arm64/kvm/hyp/nvhe/pkvm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "41d6028e28bd474298ff10409c292ec46cf43a90",
              "lessThan": "4efda204087145d40a84344edec7e9d3885ad3ab",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "41d6028e28bd474298ff10409c292ec46cf43a90",
              "lessThan": "7b5e99d286747b6b5b583b8efcd06bdbdd94b229",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "41d6028e28bd474298ff10409c292ec46cf43a90",
              "lessThan": "4f16c5fc8dc4c5596e3777ab9f449a54e3f85fd5",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "arch/arm64/kvm/hyp/nvhe/pkvm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.14",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.14",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.55",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.9",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/4efda204087145d40a84344edec7e9d3885ad3ab",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4f16c5fc8dc4c5596e3777ab9f449a54e3f85fd5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7b5e99d286747b6b5b583b8efcd06bdbdd94b229",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}