CVE-2026-74607 (GCVE-0-2026-74607)
Vulnerability from cvelistv5 – Published: 2026-08-22 15:31 – Updated: 2026-08-25 05:40
VLAI
EPSS
VEX
Title
KVM: SVM: Serialize accesses to the owner and mirror list with separate lock
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: SVM: Serialize accesses to the owner and mirror list with separate lock
Interaction between KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and
KVM_CAP_VM_COPY_ENC_CONTEXT_FROM can cause two separate issues:
- in sev_migrate_from(), when the destination KVM is a mirror, the mirror
entry is moved from the source's list to the owner's mirror_vms list,
without holding the owner's lock unlike other writers of the owner's
mirror list (sev_vm_copy_enc_context_from(), sev_vm_destroy()).
A concurrent COPY or destroy can race with sev_migrate_from() and
corrupt the list.
- In sev_vm_destroy(), the *owner* is still active and could receive
concurrently a KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM that causes
sev->enc_context_owner to change. In this case the incorrect VM
receives kvm_put_kvm().
The second issue needs particular care because the owner could disappear
altogether (even though the race window is impossibly small) between
reading it and locking it. There is thus no way to perform the checks
under the owner lock without putting struct kvm under SLAB_TYPESAFE_BY_RCU
(which would allow kvm_get_kvm_safe() under RCU critical section).
It is much simpler to just use a global lock, since the critical
sections are so small and the new lock is always a leaf lock.
Severity
8.8 (High)
Assigner
References
6 references
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < 7943ec3a6d0e7e0a2eb4943300bce089ac3e8c3e
(git)
Affected: b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < 28afde1edbd8b20058cbf4d75fb57876471ec334 (git) Affected: b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < 328ab4fabe05af004d886659f8744076e320ddce (git) Affected: b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < 47976eaaf0a4eb46dade48b3246779090db9e3ec (git) Affected: b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < d728baba0f20e49439fc7831bf3e4e7dee82161a (git) Affected: b2125513dfc0dd0ec5a9605138a3c356592cfb73 , < 1d78d33275ef2a16c6d080910b291d0a97a0e613 (git) |
guessed | |
| Linux | Linux |
Affected:
5.18
Unaffected: 0 , < 5.18 (semver) Unaffected: 6.1.184 , ≤ 6.1.* (semver) Unaffected: 6.6.153 , ≤ 6.6.* (semver) Unaffected: 6.12.105 , ≤ 6.12.* (semver) Unaffected: 6.18.45 , ≤ 6.18.* (semver) Unaffected: 7.1.9 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c",
"arch/x86/kvm/svm/svm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7943ec3a6d0e7e0a2eb4943300bce089ac3e8c3e",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
},
{
"lessThan": "28afde1edbd8b20058cbf4d75fb57876471ec334",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
},
{
"lessThan": "328ab4fabe05af004d886659f8744076e320ddce",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
},
{
"lessThan": "47976eaaf0a4eb46dade48b3246779090db9e3ec",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
},
{
"lessThan": "d728baba0f20e49439fc7831bf3e4e7dee82161a",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
},
{
"lessThan": "1d78d33275ef2a16c6d080910b291d0a97a0e613",
"status": "affected",
"version": "b2125513dfc0dd0ec5a9605138a3c356592cfb73",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kvm/svm/sev.c",
"arch/x86/kvm/svm/svm.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"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": "6.1.184",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SVM: Serialize accesses to the owner and mirror list with separate lock\n\nInteraction between KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and\nKVM_CAP_VM_COPY_ENC_CONTEXT_FROM can cause two separate issues:\n\n- in sev_migrate_from(), when the destination KVM is a mirror, the mirror\n entry is moved from the source\u0027s list to the owner\u0027s mirror_vms list,\n without holding the owner\u0027s lock unlike other writers of the owner\u0027s\n mirror list (sev_vm_copy_enc_context_from(), sev_vm_destroy()).\n A concurrent COPY or destroy can race with sev_migrate_from() and\n corrupt the list.\n\n- In sev_vm_destroy(), the *owner* is still active and could receive\n concurrently a KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM that causes\n sev-\u003eenc_context_owner to change. In this case the incorrect VM\n receives kvm_put_kvm().\n\nThe second issue needs particular care because the owner could disappear\naltogether (even though the race window is impossibly small) between\nreading it and locking it. There is thus no way to perform the checks\nunder the owner lock without putting struct kvm under SLAB_TYPESAFE_BY_RCU\n(which would allow kvm_get_kvm_safe() under RCU critical section).\n\nIt is much simpler to just use a global lock, since the critical\nsections are so small and the new lock is always a leaf lock."
}
],
"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 - Reached only via local KVM_ENABLE_CAP ioctl on VM fds (KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM/KVM_CAP_VM_COPY_ENC_CONTEXT_FROM) after opening /dev/kvm; not network, adjacent-wireless, or physical-device reachable.\nAC:L - Attacker with multiple VM fds can concurrently issue MOVE, COPY, and close operations from threads they control to deterministically race sev_migrate_from(), sev_vm_copy_enc_context_from(), and sev_vm_destroy().\nPR:L - Requires /dev/kvm and SEV setup (typically kvm-group or QEMU/container KVM passthrough), not init-namespace root; CAP_SYS_ADMIN-equivalent access is not obtainable via unprivileged user namespaces alone but kvm tenants hold sufficient access.\nUI:N - No victim interaction; the attacker VMM process issues the ioctl sequence and concurrent close/migrate operations directly.\nS:C - Races corrupt SEV mirror/owner linked lists and can misdirect kvm_put_kvm() on the wrong struct kvm, breaking AMD SEV encrypted-memory isolation boundaries and enabling host impact beyond the caller VM scope.\nC:H - Unsynchronized mirror_vms/enc_context_owner updates cause kernel linked-list corruption and kvm refcount UAF, which can disclose kernel memory and confidential SEV guest ciphertext via broken owner/mirror bookkeeping.\nI:H - List corruption and mistaken kvm_put_kvm() on the wrong KVM object provide exploitable heap corruption and control over SEV encryption context lifetime, enabling arbitrary host memory modification.\nA:H - Corrupted mirror lists, use-after-free on struct kvm, or premature destruction of an active SEV owner/mirror reliably triggers kernel oops/panic and denial of host service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:32.287Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7943ec3a6d0e7e0a2eb4943300bce089ac3e8c3e"
},
{
"url": "https://git.kernel.org/stable/c/28afde1edbd8b20058cbf4d75fb57876471ec334"
},
{
"url": "https://git.kernel.org/stable/c/328ab4fabe05af004d886659f8744076e320ddce"
},
{
"url": "https://git.kernel.org/stable/c/47976eaaf0a4eb46dade48b3246779090db9e3ec"
},
{
"url": "https://git.kernel.org/stable/c/d728baba0f20e49439fc7831bf3e4e7dee82161a"
},
{
"url": "https://git.kernel.org/stable/c/1d78d33275ef2a16c6d080910b291d0a97a0e613"
}
],
"title": "KVM: SVM: Serialize accesses to the owner and mirror list with separate lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74607",
"datePublished": "2026-08-22T15:31:54.554Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-08-25T05:40:32.287Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-74607",
"date": "2026-08-29",
"epss": "0.00129",
"percentile": "0.02875"
},
"microsoft_vex": {
"current_release_date": "2026-08-24T14:46:24.000Z",
"cve": "CVE-2026-74607",
"id": "msrc_CVE-2026-74607",
"initial_release_date": "2026-08-24T01:02:58.000Z",
"product_status:known_affected": "1",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "KVM: SVM: Serialize accesses to the owner and mirror list with separate lock",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74607.json",
"version": "2"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-74607\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-22T16:16:33.183\",\"lastModified\":\"2026-08-25T06:18:37.403\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nKVM: SVM: Serialize accesses to the owner and mirror list with separate lock\\n\\nInteraction between KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM and\\nKVM_CAP_VM_COPY_ENC_CONTEXT_FROM can cause two separate issues:\\n\\n- in sev_migrate_from(), when the destination KVM is a mirror, the mirror\\n entry is moved from the source\u0027s list to the owner\u0027s mirror_vms list,\\n without holding the owner\u0027s lock unlike other writers of the owner\u0027s\\n mirror list (sev_vm_copy_enc_context_from(), sev_vm_destroy()).\\n A concurrent COPY or destroy can race with sev_migrate_from() and\\n corrupt the list.\\n\\n- In sev_vm_destroy(), the *owner* is still active and could receive\\n concurrently a KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM that causes\\n sev-\u003eenc_context_owner to change. In this case the incorrect VM\\n receives kvm_put_kvm().\\n\\nThe second issue needs particular care because the owner could disappear\\naltogether (even though the race window is impossibly small) between\\nreading it and locking it. There is thus no way to perform the checks\\nunder the owner lock without putting struct kvm under SLAB_TYPESAFE_BY_RCU\\n(which would allow kvm_get_kvm_safe() under RCU critical section).\\n\\nIt is much simpler to just use a global lock, since the critical\\nsections are so small and the new lock is always a leaf lock.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"arch/x86/kvm/svm/sev.c\",\"arch/x86/kvm/svm/svm.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"7943ec3a6d0e7e0a2eb4943300bce089ac3e8c3e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"28afde1edbd8b20058cbf4d75fb57876471ec334\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"328ab4fabe05af004d886659f8744076e320ddce\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"47976eaaf0a4eb46dade48b3246779090db9e3ec\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"d728baba0f20e49439fc7831bf3e4e7dee82161a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b2125513dfc0dd0ec5a9605138a3c356592cfb73\",\"lessThan\":\"1d78d33275ef2a16c6d080910b291d0a97a0e613\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"arch/x86/kvm/svm/sev.c\",\"arch/x86/kvm/svm/svm.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.18\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.18\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.184\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.153\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.105\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.45\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.9\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H\",\"baseScore\":8.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.0,\"impactScore\":6.0}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1d78d33275ef2a16c6d080910b291d0a97a0e613\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/28afde1edbd8b20058cbf4d75fb57876471ec334\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/328ab4fabe05af004d886659f8744076e320ddce\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/47976eaaf0a4eb46dade48b3246779090db9e3ec\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7943ec3a6d0e7e0a2eb4943300bce089ac3e8c3e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d728baba0f20e49439fc7831bf3e4e7dee82161a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-08-25T08:50:38+00:00",
"cve": "CVE-2026-74607",
"id": "CVE-2026-74607",
"initial_release_date": "2026-08-22T00:00:00+00:00",
"product_status:known_affected": "232",
"product_status:known_not_affected": "42",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: KVM: SVM: Serialize accesses to the owner and mirror list with separate lock",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74607.json",
"version": "3"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
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…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…