{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2021-47060","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-02-29T22:33:44.294Z","datePublished":"2024-02-29T22:37:34.885Z","dateUpdated":"2026-08-05T08:45:46.354Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T08:45:46.354Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: Stop looking for coalesced MMIO zones if the bus is destroyed\n\nAbort the walk of coalesced MMIO zones if kvm_io_bus_unregister_dev()\nfails to allocate memory for the new instance of the bus.  If it can't\ninstantiate a new bus, unregister_dev() destroys all devices _except_ the\ntarget device.   But, it doesn't tell the caller that it obliterated the\nbus and invoked the destructor for all devices that were on the bus.  In\nthe coalesced MMIO case, this can result in a deleted list entry\ndereference due to attempting to continue iterating on coalesced_zones\nafter future entries (in the walk) have been deleted.\n\nOpportunistically add curly braces to the for-loop, which encompasses\nmany lines but sneaks by without braces due to the guts being a single\nif statement."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The bug is reached via KVM_UNREGISTER_COALESCED_MMIO on a VM fd from kvm_vm_ioctl after open(\"/dev/kvm\")/KVM_CREATE_VM; it is a local host ioctl path, not network- or guest-MMIO-triggered.\nAC:L - The attacker fully controls registering multiple coalesced MMIO zones and the unregister ioctl, and can reliably force the GFP_KERNEL_ACCOUNT kmalloc failure (e.g., memcg/memory pressure) that triggers destruction of other bus devices and the UAF.\nPR:L - The ioctl path has no capable() check; access requires only /dev/kvm permissions (typically kvm-group membership), which is basic device access rather than real root/admin privileges that cannot be obtained without elevated rights.\nUI:N - The attacker triggers the vulnerability directly with their own KVM ioctls; no victim action is required.\nS:U - This is host userspace (VMM) corrupting host kernel state through the KVM ioctl interface, i.e. privilege escalation within the same security authority, not a guest-to-host escape via guest execution.\nC:H - The flaw is a use-after-free of kvm_coalesced_mmio_dev list entries (confirmed as UAF read by KASAN); freed objects can be reallocated/sprayed to obtain arbitrary kernel memory disclosure.\nI:H - UAF/double-free of IO bus device objects enables heap corruption and write primitives that can hijack kernel control flow, so integrity impact is high.\nA:H - Dereferencing deleted/freed list entries causes kernel oops/panic, and UAF paths are inherently crashable even without full exploitation."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/kvm_host.h","virt/kvm/coalesced_mmio.c","virt/kvm/kvm_main.c"],"versions":[{"version":"41b2ea7a6a11e2b1a7f2c29e1675a709a6b2b98d","lessThan":"7d1bc32d6477ff96a32695ea4be8144e4513ab2d","status":"affected","versionType":"git"},{"version":"f65886606c2d3b562716de030706dfe1bea4ed5e","lessThan":"2a20592baff59c5351c5200ec667e1a2aa22af85","status":"affected","versionType":"git"},{"version":"f65886606c2d3b562716de030706dfe1bea4ed5e","lessThan":"168e82f640ed1891a700bdb43e37da354b2ab63c","status":"affected","versionType":"git"},{"version":"f65886606c2d3b562716de030706dfe1bea4ed5e","lessThan":"50cbad42bfea8c052b7ca590bd4126cdc898713c","status":"affected","versionType":"git"},{"version":"f65886606c2d3b562716de030706dfe1bea4ed5e","lessThan":"5d3c4c79384af06e3c8e25b7770b6247496b4417","status":"affected","versionType":"git"},{"version":"f0dfffce3f4ffd5f822568a4a6fb34c010e939d1","status":"affected","versionType":"git"},{"version":"840e124f89a5127e7eb97ebf377f4b8ca745c070","status":"affected","versionType":"git"},{"version":"40a023f681befd9b2862a3c16fb306a38b359ae5","status":"affected","versionType":"git"},{"version":"19184bd06f488af62924ff1747614a8cb284ad63","status":"affected","versionType":"git"},{"version":"68c125324b5e1d1d22805653735442923d896a1d","status":"affected","versionType":"git"},{"version":"5.4.66","lessThan":"5.4.119","status":"affected","versionType":"semver"},{"version":"4.4.238","lessThan":"4.5","status":"affected","versionType":"semver"},{"version":"4.9.238","lessThan":"4.10","status":"affected","versionType":"semver"},{"version":"4.14.200","lessThan":"4.15","status":"affected","versionType":"semver"},{"version":"4.19.148","lessThan":"4.20","status":"affected","versionType":"semver"},{"version":"5.8.10","lessThan":"5.9","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/kvm_host.h","virt/kvm/coalesced_mmio.c","virt/kvm/kvm_main.c"],"versions":[{"version":"5.9","status":"affected"},{"version":"0","lessThan":"5.9","status":"unaffected","versionType":"semver"},{"version":"5.4.119","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.37","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.11.21","lessThanOrEqual":"5.11.*","status":"unaffected","versionType":"semver"},{"version":"5.12.4","lessThanOrEqual":"5.12.*","status":"unaffected","versionType":"semver"},{"version":"5.13","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.66","versionEndExcluding":"5.4.119"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.9","versionEndExcluding":"5.10.37"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.9","versionEndExcluding":"5.11.21"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.9","versionEndExcluding":"5.12.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.9","versionEndExcluding":"5.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.4.238"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9.238"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.200"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8.10"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/7d1bc32d6477ff96a32695ea4be8144e4513ab2d"},{"url":"https://git.kernel.org/stable/c/2a20592baff59c5351c5200ec667e1a2aa22af85"},{"url":"https://git.kernel.org/stable/c/168e82f640ed1891a700bdb43e37da354b2ab63c"},{"url":"https://git.kernel.org/stable/c/50cbad42bfea8c052b7ca590bd4126cdc898713c"},{"url":"https://git.kernel.org/stable/c/5d3c4c79384af06e3c8e25b7770b6247496b4417"}],"title":"KVM: Stop looking for coalesced MMIO zones if the bus is destroyed","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"problemTypes":[{"descriptions":[{"type":"CWE","lang":"en","description":"CWE-noinfo Not enough information"}]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":6,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"HIGH","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2024-03-05T19:24:08.098826Z","id":"CVE-2021-47060","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-11-07T16:31:59.196Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-04T05:24:39.796Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/7d1bc32d6477ff96a32695ea4be8144e4513ab2d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/2a20592baff59c5351c5200ec667e1a2aa22af85","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/168e82f640ed1891a700bdb43e37da354b2ab63c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/50cbad42bfea8c052b7ca590bd4126cdc898713c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/5d3c4c79384af06e3c8e25b7770b6247496b4417","tags":["x_transferred"]}]}]}}