CVE-2022-48986: mm/gup: fix gup_pud_range() for dax
In the Linux kernel, the following vulnerability has been resolved:
mm/gup: fix gup_pud_range() for dax
For dax pud, pud_huge() returns true on x86. So the function works as long
as hugetlb is configured. However, dax doesn't depend on hugetlb.
Commit 414fd080d125 ("mm/gup: fix gup_pmd_range() for dax") fixed
devmap-backed huge PMDs, but missed devmap-backed huge PUDs. Fix this as
well.
This fixes the below kernel panic:
general protection fault, probably for non-canonical address 0x69e7c000cc478: 0000 [#1] SMP
< snip >
Call Trace:
<TASK>
get_user_pages_fast+0x1f/0x40
iov_iter_get_pages+0xc6/0x3b0
? mempool_alloc+0x5d/0x170
bio_iov_iter_get_pages+0x82/0x4e0
? bvec_alloc+0x91/0xc0
? bio_alloc_bioset+0x19a/0x2a0
blkdev_direct_IO+0x282/0x480
? __io_complete_rw_common+0xc0/0xc0
? filemap_range_has_page+0x82/0xc0
generic_file_direct_write+0x9d/0x1a0
? inode_update_time+0x24/0x30
__generic_file_write_iter+0xbd/0x1e0
blkdev_write_iter+0xb4/0x150
? io_import_iovec+0x8d/0x340
io_write+0xf9/0x300
io_issue_sqe+0x3c3/0x1d30
? sysvec_reschedule_ipi+0x6c/0x80
__io_queue_sqe+0x33/0x240
? fget+0x76/0xa0
io_submit_sqes+0xe6a/0x18d0
? __fget_light+0xd1/0x100
__x64_sys_io_uring_enter+0x199/0x880
? __context_tracking_enter+0x1f/0x70
? irqentry_exit_to_user_mode+0x24/0x30
? irqentry_exit+0x1d/0x30
? __context_tracking_exit+0xe/0x70
do_syscall_64+0x3b/0x90
entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7fc97c11a7be
< snip >
</TASK>
---[ end trace 48b2e0e67debcaeb ]---
RIP: 0010:internal_get_user_pages_fast+0x340/0x990
< snip >
Kernel panic - not syncing: Fatal exception
Kernel Offset: disabled
Security readout for executives and security teams
Plain-English summary
This Linux kernel bug can crash an affected system under specific memory and direct I/O conditions involving DAX. The documented impact is a kernel panic, so the main business risk is service interruption, not proven data theft or remote takeover.
Executive priority
Treat this as a targeted availability risk. Patch during normal kernel maintenance, faster for infrastructure using DAX or persistent memory. Escalate only if critical services show matching crash traces or vendor advisories rate your platform higher.
Technical view
The flaw is in get_user_pages handling for devmap-backed huge PUD mappings used by DAX. A prior fix covered huge PMDs but missed huge PUDs, allowing get_user_pages_fast paths to hit a general protection fault and panic the kernel.
Likely exposure
Exposure appears most relevant to Linux systems on the listed affected versions or commits, particularly where DAX-backed storage or memory mappings are used. Systems without DAX-style configurations may have lower practical exposure, but the source does not provide a complete environment matrix.
Exploitation context
The source bundle does not show active exploitation, KEV listing, exploit code, or remote attack details. It documents a reproducible kernel panic path through direct I/O and io_uring-related call traces, indicating an availability failure under specific local/system conditions.
Researcher notes
Evidence is limited to the CVE description and Linux stable references. No CVSS, CWE, KEV entry, exploit status, or complete affected-platform matrix is provided. The strongest technical signal is the documented kernel panic in gup_pud_range handling for DAX huge PUD mappings.
Mitigation direction
Update to a vendor-supported kernel containing the referenced stable fixes.
Prioritize hosts using DAX, persistent memory, or direct I/O heavy workloads.
Check Linux distribution advisories for backported fixes in supported kernel packages.
Avoid direct wrangler-style upstream assumptions; validate fixes through your vendor kernel metadata.
Validation and detection
Inventory Linux kernel versions against the affected version and commit data.
Identify systems using DAX-backed filesystems, persistent memory, or devmap huge mappings.
Confirm installed kernels include one of the referenced stable fix commits or vendor backports.
Review kernel panic logs for get_user_pages_fast, bio_iov_iter_get_pages, or io_uring traces.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-48986 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.