Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2022-50471— xen/gntdev: Accommodate VMA splitting

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未正确处理VMA拆分,可能导致错误页面映射。

AI Predicted 5.5 Difficulty: Hard EPSS 0.16% · P5

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux ab31523c2fcac557226bac72cbdf5fafe01f9a26< 3c6a888e352283a14f37b9b433cd598a1a3a7dd0 affected
ab31523c2fcac557226bac72cbdf5fafe01f9a26< 7c16d0a4e6a436b4e7c92bead3fab55aaa4c1141 affected
ab31523c2fcac557226bac72cbdf5fafe01f9a26< 4fb4053d90caa9985b87ec0e0c32c66a55bdfa3a affected
ab31523c2fcac557226bac72cbdf5fafe01f9a26< cdafa219ace013c594e2491158ad1b51f9923dde affected
ab31523c2fcac557226bac72cbdf5fafe01f9a26< 5c13a4a0291b30191eff9ead8d010e1ca43a4d0c affected
2.6.38 affected
< 2.6.38 unaffected
5.10.152≤ 5.10.* unaffected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2022-50471

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
xen/gntdev: Accommodate VMA splitting
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: xen/gntdev: Accommodate VMA splitting Prior to this commit, the gntdev driver code did not handle the following scenario correctly with paravirtualized (PV) Xen domains: * User process sets up a gntdev mapping composed of two grant mappings (i.e., two pages shared by another Xen domain). * User process munmap()s one of the pages. * User process munmap()s the remaining page. * User process exits. In the scenario above, the user process would cause the kernel to log the following messages in dmesg for the first munmap(), and the second munmap() call would result in similar log messages: BUG: Bad page map in process doublemap.test pte:... pmd:... page:0000000057c97bff refcount:1 mapcount:-1 \ mapping:0000000000000000 index:0x0 pfn:... ... page dumped because: bad pte ... file:gntdev fault:0x0 mmap:gntdev_mmap [xen_gntdev] readpage:0x0 ... Call Trace: <TASK> dump_stack_lvl+0x46/0x5e print_bad_pte.cold+0x66/0xb6 unmap_page_range+0x7e5/0xdc0 unmap_vmas+0x78/0xf0 unmap_region+0xa8/0x110 __do_munmap+0x1ea/0x4e0 __vm_munmap+0x75/0x120 __x64_sys_munmap+0x28/0x40 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x61/0xcb ... For each munmap() call, the Xen hypervisor (if built with CONFIG_DEBUG) would print out the following and trigger a general protection fault in the affected Xen PV domain: (XEN) d0v... Attempt to implicitly unmap d0's grant PTE ... (XEN) d0v... Attempt to implicitly unmap d0's grant PTE ... As of this writing, gntdev_grant_map structure's vma field (referred to as map->vma below) is mainly used for checking the start and end addresses of mappings. However, with split VMAs, these may change, and there could be more than one VMA associated with a gntdev mapping. Hence, remove the use of map->vma and rely on map->pages_vm_start for the original start address and on (map->count << PAGE_SHIFT) for the original mapping size. Let the invalidate() and find_special_page() hooks use these. Also, given that there can be multiple VMAs associated with a gntdev mapping, move the "mmu_interval_notifier_remove(&map->notifier)" call to the end of gntdev_put_map, so that the MMU notifier is only removed after the closing of the last remaining VMA. Finally, use an atomic to prevent inadvertent gntdev mapping re-use, instead of using the map->live_grants atomic counter and/or the map->vma pointer (the latter of which is now removed). This prevents the userspace from mmap()'ing (with MAP_FIXED) a gntdev mapping over the same address range as a previously set up gntdev mapping. This scenario can be summarized with the following call-trace, which was valid prior to this commit: mmap gntdev_mmap mmap (repeat mmap with MAP_FIXED over the same address range) gntdev_invalidate unmap_grant_pages (sets 'being_removed' entries to true) gnttab_unmap_refs_async unmap_single_vma gntdev_mmap (maps the shared pages again) munmap gntdev_invalidate unmap_grant_pages (no-op because 'being_removed' entries are true) unmap_single_vma (For PV domains, Xen reports that a granted page is being unmapped and triggers a general protection fault in the affected domain, if Xen was built with CONFIG_DEBUG) The fix for this last scenario could be worth its own commit, but we opted for a single commit, because removing the gntdev_grant_map structure's vma field requires guarding the entry to gntdev_mmap(), and the live_grants atomic counter is not sufficient on its own to prevent the mmap() over a pre-existing mapping.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未正确处理VMA拆分,可能导致错误页面映射。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux ab31523c2fcac557226bac72cbdf5fafe01f9a26 ~ 3c6a888e352283a14f37b9b433cd598a1a3a7dd0 -
Linux Linux 2.6.38 -

II. Public POCs for CVE-2022-50471

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-50471

请登录查看更多情报信息。

Patches & Fixes for CVE-2022-50471 (5)

Same Patch Batch · Linux · 2025-10-04 · 144 CVEs total

CVE-2025-39932 9.8 CRITICAL smb: client: let smbd_destroy() call disable_work_sync(&info->post_send_credits_work)
CVE-2025-39948 9.8 CRITICAL ice: fix Rx page leak on multi-buffer frames
CVE-2025-39946 9.8 CRITICAL tls: make sure to abort the stream if headers are bogus
CVE-2025-39933 9.4 CRITICAL smb: client: let recv_done verify data_offset, data_length and remaining_data_length
CVE-2025-39943 9.4 CRITICAL ksmbd: smbdirect: validate data_offset and data_length field of smb_direct_data_transfer
CVE-2023-53600 9.1 CRITICAL tunnels: fix kasan splat when generating ipv4 pmtu error
CVE-2023-53615 8.8 HIGH scsi: qla2xxx: Fix deletion race condition
CVE-2025-39952 8.8 HIGH wifi: wilc1000: avoid buffer overflow in WID string configuration
CVE-2023-53589 8.8 HIGH wifi: iwlwifi: mvm: don't trust firmware n_channels
CVE-2023-53586 8.8 HIGH scsi: target: Fix multiple LUN_RESET handling
CVE-2022-50493 8.8 HIGH scsi: qla2xxx: Fix crash when I/O abort times out
CVE-2023-53598 8.4 HIGH bus: mhi: host: Range check CHDBOFF and ERDBOFF
CVE-2023-53566 7.8 HIGH netfilter: nft_set_rbtree: fix null deref on element insertion
CVE-2023-53536 7.8 HIGH blk-crypto: make blk_crypto_evict_key() more robust
CVE-2023-53560 7.8 HIGH tracing/histograms: Add histograms to hist_vars if they have referenced variables
CVE-2023-53559 7.8 HIGH ip_vti: fix potential slab-use-after-free in decode_session6
CVE-2023-53557 7.8 HIGH fprobe: Release rethook after the ftrace_ops is unregistered
CVE-2023-53537 7.8 HIGH f2fs: fix to avoid use-after-free for cached IPU bio
CVE-2023-53539 7.8 HIGH RDMA/rxe: Fix incomplete state save in rxe_requester
CVE-2023-53545 7.8 HIGH drm/amdgpu: unmap and remove csa_va properly

Showing top 20 of 144 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2022-50471

No comments yet


Leave a comment