Skip to content
Heist/ feed
Back to feed
UnratedFix available

KVM: SVM: Add missing save/restore handling of LBR MSRs

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: KVM: SVM: Add missing save/restore handling of LBR MSRs MSR_IA32_DEBUGCTLMSR and LBR MSRs are currently not enumerated by KVM_GET_MSR_INDEX_LIST, and LBR MSRs cannot be set with KVM_SET_MSRS. So save/restore is completely broken. Fix it by adding the MSRs to msrs_to_save_base, and allowing writes to LBR MSRs from userspace only (as they are read-only MSRs) if LBR virtualization is enabled. Additionally, to correctly restore L1's LBRs while L2 is running, make sure the LBRs are copied from the captured VMCB01 save area in svm_copy_vmrun_state(). Note, for VMX, this also fixes a flaw where MSR_IA32_DEBUGCTLMSR isn't reported as an MSR to save/restore. Note #2, over-reporting MSR_IA32_LASTxxx on Intel is ok, as KVM already handles unsupported reads and writes thanks to commit b5e2fec0ebc3 ("KVM: Ignore DEBUGCTL MSRs with no effect") (kvm_do_msr_access() will morph the unsupported userspace write into a nop). [sean: guard with lbrv checks, massage changelog]

Products
Kernel
Affected versions
Not specified
Fixed versions
6.12.114, 6.18.27, 6.6.160, 7.0.4
CVEs
CVE-2026-46014
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 22:49 UTC · Revision 1

Source evidence

KVM: SVM: Add missing save/restore handling of LBR MSRs

core-osv · Original source

Published 27 May 2026, 12:56 UTC

In the Linux kernel, the following vulnerability has been resolved: KVM: SVM: Add missing save/restore handling of LBR MSRs MSR_IA32_DEBUGCTLMSR and LBR MSRs are currently not enumerated by KVM_GET_MSR_INDEX_LIST, and LBR MSRs cannot be set with KVM_SET_MSRS. So save/restore is completely broken. Fix it by adding the MSRs to msrs_to_save_base, and allowing writes to LBR MSRs from userspace only (as they are read-only MSRs) if LBR virtualization is enabled. Additionally, to correctly restore L1's LBRs while L2 is running, make sure the LBRs are copied from the captured VMCB01 save area in svm_copy_vmrun_state(). Note, for VMX, this also fixes a flaw where MSR_IA32_DEBUGCTLMSR isn't reported as an MSR to save/restore. Note #2, over-reporting MSR_IA32_LASTxxx on Intel is ok, as KVM already handles unsupported reads and writes thanks to commit b5e2fec0ebc3 ("KVM: Ignore DEBUGCTL MSRs with no effect") (kvm_do_msr_access() will morph the unsupported userspace write into a nop). [sean: guard with lbrv checks, massage changelog]

osv:CVE-2026-46014

Kernel

Fixed versions: 6.6.160, 6.12.114, 6.18.27, 7.0.4

Complete source record
{
  "id": "0d8d878f2e3aa74e4699abe7c75f8c910392537ba93fcc3d7b4b79192de8c563",
  "url": "https://osv.dev/vulnerability/CVE-2026-46014",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "KVM: SVM: Add missing save/restore handling of LBR MSRs",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: KVM: SVM: Add missing save/restore handling of LBR MSRs MSR_IA32_DEBUGCTLMSR and LBR MSRs are currently not enumerated by KVM_GET_MSR_INDEX_LIST, and LBR MSRs cannot be set with KVM_SET_MSRS. So save/restore is completely broken. Fix it by adding the MSRs to msrs_to_save_base, and allowing writes to LBR MSRs from userspace only (as they are read-only MSRs) if LBR virtualization is enabled. Additionally, to correctly restore L1's LBRs while L2 is running, make sure the LBRs are copied from the captured VMCB01 save area in svm_copy_vmrun_state(). Note, for VMX, this also fixes a flaw where MSR_IA32_DEBUGCTLMSR isn't reported as an MSR to save/restore. Note #2, over-reporting MSR_IA32_LASTxxx on Intel is ok, as KVM already handles unsupported reads and writes thanks to commit b5e2fec0ebc3 (\"KVM: Ignore DEBUGCTL MSRs with no effect\") (kvm_do_msr_access() will morph the unsupported userspace write into a nop). [sean: guard with lbrv checks, massage changelog]",
    "evidence": "osv:CVE-2026-46014",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.114",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.27",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.0.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-46014",
      "aliases": [
        "CVE-2026-46014"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "24e09cbf480a72f9c952af4ca77b159503dca44b"
                },
                {
                  "fixed": "bca0597272f9712b1f8ebd38b184db1dc2902ff7"
                },
                {
                  "fixed": "4428a0a8643b0acf4ed7b8ea3e5975023bf4aafb"
                },
                {
                  "fixed": "2b922a42b531a82d7881add14a7698dcdc5e1f0a"
                },
                {
                  "fixed": "13a89ada5dcfc2539514c83ba5a2c61157f1ec6c"
                },
                {
                  "fixed": "3700f0788da6acf73b2df56690f4b201aa4aefd2"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-46014.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "2.6.26"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.114"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.27"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.0.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-46014.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:40.058482740Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/13a89ada5dcfc2539514c83ba5a2c61157f1ec6c",
        "https://git.kernel.org/stable/c/2b922a42b531a82d7881add14a7698dcdc5e1f0a",
        "https://git.kernel.org/stable/c/3700f0788da6acf73b2df56690f4b201aa4aefd2",
        "https://git.kernel.org/stable/c/4428a0a8643b0acf4ed7b8ea3e5975023bf4aafb",
        "https://git.kernel.org/stable/c/bca0597272f9712b1f8ebd38b184db1dc2902ff7",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46014.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-46014",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46014.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-46014",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 507736,
  "published_at": "2026-05-27T12:56:16.052+00:00"
}