VDB

CVE-2024-38610

CVE-2024-38610 PUBLISHED CVSS 7.8 HIGH

drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map()

Reported by linux · Published June 19, 2024

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 scores

CVSS 3.1
7.8
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Affected products

VendorProductVersions
LinuxLinuxb9c43aa0b18da5619aac347d54cb67fe30d1f884, 8a6e85f75a83d16a71077e41f2720c691f432002, 8a6e85f75a83d16a71077e41f2720c691f432002
LinuxLinux5.18, 0, 5.15.161
linuxlinux_kernel5.15.33, 5.18, 5.18
LinuxLinux8a6e85f75a83d16a71077e41f2720c691f432002, 8a6e85f75a83d16a71077e41f2720c691f432002, 8a6e85f75a83d16a71077e41f2720c691f432002

Timeline

  • Jun 19, 2024 CVE Published
  • Jun 20, 2024 EPSS Score (30 in total, the first dated here)
  • Oct 4, 2024 Coalition ESS Score (6 in total, the first dated here)
  • Jan 8, 2026 Security Advisory (311 in total, the first dated here)
  • Jan 8, 2026 CVE Updated
  • Mar 30, 2026 Distribution Patch (234 in total, the first dated here)

Query this with the API

The same record, from the CLI:

vulnetix vdb vuln CVE-2024-38610
vulnetix vdb fixes CVE-2024-38610

Or with curl, using the org id and key from your account page:

curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
  "https://api.vdb.vulnetix.com/v2/vuln/CVE-2024-38610/fixes/registry"

The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart

References

Look up in the Resolve Platform →
$ Lookup Community · 50/day Open Lookup ›