Files
vuln-cve/data/2022/48xxx/CVE-2022-48986.json
T

283 lines
15 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2022-48986",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-08-22T01:27:53.634Z",
"datePublished": "2024-10-21T20:06:02.502Z",
"dateUpdated": "2026-08-05T08:53:16.291Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:53:16.291Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/gup: fix gup_pud_range() for dax\n\nFor dax pud, pud_huge() returns true on x86. So the function works as long\nas hugetlb is configured. However, dax doesn't depend on hugetlb.\nCommit 414fd080d125 (\"mm/gup: fix gup_pmd_range() for dax\") fixed\ndevmap-backed huge PMDs, but missed devmap-backed huge PUDs. Fix this as\nwell.\n\nThis fixes the below kernel panic:\n\ngeneral protection fault, probably for non-canonical address 0x69e7c000cc478: 0000 [#1] SMP\n\t< snip >\nCall Trace:\n<TASK>\nget_user_pages_fast+0x1f/0x40\niov_iter_get_pages+0xc6/0x3b0\n? mempool_alloc+0x5d/0x170\nbio_iov_iter_get_pages+0x82/0x4e0\n? bvec_alloc+0x91/0xc0\n? bio_alloc_bioset+0x19a/0x2a0\nblkdev_direct_IO+0x282/0x480\n? __io_complete_rw_common+0xc0/0xc0\n? filemap_range_has_page+0x82/0xc0\ngeneric_file_direct_write+0x9d/0x1a0\n? inode_update_time+0x24/0x30\n__generic_file_write_iter+0xbd/0x1e0\nblkdev_write_iter+0xb4/0x150\n? io_import_iovec+0x8d/0x340\nio_write+0xf9/0x300\nio_issue_sqe+0x3c3/0x1d30\n? sysvec_reschedule_ipi+0x6c/0x80\n__io_queue_sqe+0x33/0x240\n? fget+0x76/0xa0\nio_submit_sqes+0xe6a/0x18d0\n? __fget_light+0xd1/0x100\n__x64_sys_io_uring_enter+0x199/0x880\n? __context_tracking_enter+0x1f/0x70\n? irqentry_exit_to_user_mode+0x24/0x30\n? irqentry_exit+0x1d/0x30\n? __context_tracking_exit+0xe/0x70\ndo_syscall_64+0x3b/0x90\nentry_SYSCALL_64_after_hwframe+0x61/0xcb\nRIP: 0033:0x7fc97c11a7be\n\t< snip >\n</TASK>\n---[ end trace 48b2e0e67debcaeb ]---\nRIP: 0010:internal_get_user_pages_fast+0x340/0x990\n\t< snip >\nKernel panic - not syncing: Fatal exception\nKernel Offset: disabled"
}
],
"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 - Exploitation requires local access to mmap a device-DAX mapping (/dev/dax with PUD alignment) and trigger get_user_pages_fast via a local syscall path such as O_DIRECT/io_uring; it is not reachable from the network stack.\nAC:L - Once a vulnerable kernel has a PUD-sized DAX mapping, the attacker fully controls the mapping contents and the GUP trigger, so the incorrect page-table walk or crash can be induced reliably without races or victim-dependent timing.\nPR:L - The DAX driver performs no capability check beyond ordinary file permissions on /dev/dax; an unprivileged user granted access to that device (common for PMEM/CXL workloads) can mmap it and trigger GUP without real root.\nUI:N - The attacker triggers the bug entirely through their own syscalls (mmap plus O_DIRECT/io_uring or other GUP users); no separate victim action is required.\nS:U - Impact is confined to the same kernel security authority (local DoS or memory access within the host kernel); this is not a VM/IOMMU escape or other cross-boundary scope change.\nC:H - When HUGETLB is disabled, gup_pud_range() treats a DAX PUD as a page-table pointer into attacker-controlled DAX memory in the linear map, so crafted PTEs can pin arbitrary valid pages that O_DIRECT write then exfiltrates to storage.\nI:H - The same confused GUP walk can pin arbitrary pages as the destination of O_DIRECT reads, yielding an arbitrary physical-memory write primitive and enabling further control-flow hijacking.\nA:H - Uncrafted or invalid walks produce a general protection fault and kernel panic in get_user_pages_fast, as shown in the fix commit’s reproducer call trace."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"mm/gup.c"
],
"versions": [
{
"version": "414fd080d125408cb15d04ff4907e1dd8145c8c7",
"lessThan": "04edfa3dc06ecfc6133a33bc7271298782dee875",
"status": "affected",
"versionType": "git"
},
{
"version": "414fd080d125408cb15d04ff4907e1dd8145c8c7",
"lessThan": "f1cf856123ceb766c49967ec79b841030fa1741f",
"status": "affected",
"versionType": "git"
},
{
"version": "414fd080d125408cb15d04ff4907e1dd8145c8c7",
"lessThan": "3ac29732a2ffa64c7de13a072b0f2848b9c11037",
"status": "affected",
"versionType": "git"
},
{
"version": "414fd080d125408cb15d04ff4907e1dd8145c8c7",
"lessThan": "e06d13c36ded750c72521b600293befebb4e56c5",
"status": "affected",
"versionType": "git"
},
{
"version": "414fd080d125408cb15d04ff4907e1dd8145c8c7",
"lessThan": "fcd0ccd836ffad73d98a66f6fea7b16f735ea920",
"status": "affected",
"versionType": "git"
},
{
"version": "c133d8eb894cb280f331608c6f1962ba9fbfe6b0",
"status": "affected",
"versionType": "git"
},
{
"version": "538162d21ac877b060dc057c89f13718f5caffc5",
"status": "affected",
"versionType": "git"
},
{
"version": "8b1a7762e0dac5db42a003009fdcb425f10baa07",
"status": "affected",
"versionType": "git"
},
{
"version": "4.9.165",
"lessThan": "4.10",
"status": "affected",
"versionType": "semver"
},
{
"version": "4.14.108",
"lessThan": "4.15",
"status": "affected",
"versionType": "semver"
},
{
"version": "4.19.31",
"lessThan": "4.20",
"status": "affected",
"versionType": "semver"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"mm/gup.c"
],
"versions": [
{
"version": "5.0",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.0",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.4.227",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.159",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.83",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.0.13",
"lessThanOrEqual": "6.0.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1",
"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.0",
"versionEndExcluding": "5.4.227"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.0",
"versionEndExcluding": "5.10.159"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.0",
"versionEndExcluding": "5.15.83"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.0",
"versionEndExcluding": "6.0.13"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.0",
"versionEndExcluding": "6.1"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.165"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.108"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.31"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/04edfa3dc06ecfc6133a33bc7271298782dee875"
},
{
"url": "https://git.kernel.org/stable/c/f1cf856123ceb766c49967ec79b841030fa1741f"
},
{
"url": "https://git.kernel.org/stable/c/3ac29732a2ffa64c7de13a072b0f2848b9c11037"
},
{
"url": "https://git.kernel.org/stable/c/e06d13c36ded750c72521b600293befebb4e56c5"
},
{
"url": "https://git.kernel.org/stable/c/fcd0ccd836ffad73d98a66f6fea7b16f735ea920"
}
],
"title": "mm/gup: fix gup_pud_range() for dax",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2022-48986",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-10-22T13:17:13.077740Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-10-22T13:18:42.957Z"
}
}
]
}
}