drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map()
Summary
| CVE | CVE-2024-38610 |
|---|---|
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2024-06-19 14:15:20 UTC |
| Updated | 2026-08-04 11:18:51 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved: drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map() Patch series "mm: follow_pte() improvements and acrn follow_pte() fixes". Patch #1 fixes a bunch of issues I spotted in the acrn driver. It compiles, that's all I know. I'll appreciate some review and testing from acrn folks. Patch #2+#3 improve follow_pte(), passing a VMA instead of the MM, adding more sanity checks, and improving the documentation. Gave it a quick test on x86-64 using VM_PAT that ends up using follow_pte(). This patch (of 3): We currently miss handling various cases, resulting in a dangerous follow_pte() (previously follow_pfn()) usage. (1) We're not checking PTE write permissions. Maybe we should simply always require pte_write() like we do for pin_user_pages_fast(FOLL_WRITE)? Hard to tell, so let's check for ACRN_MEM_ACCESS_WRITE for now. (2) We're not rejecting refcounted pages. As we are not using MMU notifiers, messing with refcounted pages is dangerous and can result in use-after-free. Let's make sure to reject them. (3) We are only looking at the first PTE of a bigger range. We only lookup a single PTE, but memmap->len may span a larger area. Let's loop over all involved PTEs and make sure the PFN range is actually contiguous. Reject everything else: it couldn't have worked either way, and rather made use access PFNs we shouldn't be accessing. |
Risk And Classification
Primary CVSS: v3.1 7.8 HIGH from [email protected]
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Problem Types: CWE-416
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | [email protected] | Primary | 7.8 | HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 3.1 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Secondary | 7.8 | HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 3.1 | CNA | DECLARED | 7.8 | HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
CVSS v3.1 Breakdown
Attack Vector
LocalAttack Complexity
LowPrivileges Required
LowUser Interaction
NoneScope
UnchangedConfidentiality
HighIntegrity
HighAvailability
HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Operating System | Linux | Linux Kernel | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Linux | affected b9c43aa0b18da5619aac347d54cb67fe30d1f884 5c6705aa47b5b78d7ad36fea832bb69caa5bf49a git | Not specified |
| CNA | Linux | Linux | affected 8a6e85f75a83d16a71077e41f2720c691f432002 afeb0e69627695f759fc73c39c1640dbf8649b32 git | Not specified |
| CNA | Linux | Linux | affected 8a6e85f75a83d16a71077e41f2720c691f432002 e873f36ec890bece26ecce850e969917bceebbb6 git | Not specified |
| CNA | Linux | Linux | affected 8a6e85f75a83d16a71077e41f2720c691f432002 4c4ba3cf3a15ccfbaf787d0296fa42cdb00da9b4 git | Not specified |
| CNA | Linux | Linux | affected 8a6e85f75a83d16a71077e41f2720c691f432002 2c8d6e24930b8ef7d4a81787627c559ae0e0d3bb git | Not specified |
| CNA | Linux | Linux | affected 8a6e85f75a83d16a71077e41f2720c691f432002 3d6586008f7b638f91f3332602592caa8b00b559 git | Not specified |
| CNA | Linux | Linux | affected 149d5fb7e0124c3763e92edd1fde19417f4d2d09 git | Not specified |
| CNA | Linux | Linux | affected 02098ac42b7ff055ec72cd083ee1eb0a23481a19 git | Not specified |
| CNA | Linux | Linux | affected 5.15.33 5.15.161 semver | Not specified |
| CNA | Linux | Linux | affected 5.16.19 5.17 semver | Not specified |
| CNA | Linux | Linux | affected 5.17.2 5.18 semver | Not specified |
| CNA | Linux | Linux | affected 5.18 | Not specified |
| CNA | Linux | Linux | unaffected 5.18 semver | Not specified |
| CNA | Linux | Linux | unaffected 5.15.161 5.15.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.1.93 6.1.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.6.33 6.6.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.8.12 6.8.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.9.3 6.9.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.10 * original_commit_for_fix | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| git.kernel.org/stable/c/e873f36ec890bece26ecce850e969917bceebbb6 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/5c6705aa47b5b78d7ad36fea832bb69caa5bf49a | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/2c8d6e24930b8ef7d4a81787627c559ae0e0d3bb | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/3d6586008f7b638f91f3332602592caa8b00b559 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/afeb0e69627695f759fc73c39c1640dbf8649b32 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| git.kernel.org/stable/c/4c4ba3cf3a15ccfbaf787d0296fa42cdb00da9b4 | af854a3a-2127-422b-91ae-364da2661108 | git.kernel.org | Patch |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.