CVE-2022-48731
mm/kmemleak: avoid scanning potential huge holes
- Published
- Updated
- Reserved
- Assigned by
- Linux
Description
In the Linux kernel, the following vulnerability has been resolved: mm/kmemleak: avoid scanning potential huge holes When using devm_request_free_mem_region() and devm_memremap_pages() to add ZONE_DEVICE memory, if requested free mem region's end pfn were huge(e.g., 0x400000000), the node_end_pfn() will be also huge (see move_pfn_range_to_zone()). Thus it creates a huge hole between node_start_pfn() and node_end_pfn(). We found on some AMD APUs, amdkfd requested such a free mem region and created a huge hole. In such a case, following code snippet was just doing busy test_bit() looping on the huge hole. for (pfn = start_pfn; pfn < end_pfn; pfn++) { struct page *page = pfn_to_online_page(pfn); if (!page) continue; ... } So we got a soft lockup: watchdog: BUG: soft lockup - CPU#6 stuck for 26s! [bash:1221] CPU: 6 PID: 1221 Comm: bash Not tainted 5.15.0-custom #1 RIP: 0010:pfn_to_online_page+0x5/0xd0 Call Trace: ? kmemleak_scan+0x16a/0x440 kmemleak_write+0x306/0x3a0 ? common_file_perm+0x72/0x170 full_proxy_write+0x5c/0x90 vfs_write+0xb9/0x260 ksys_write+0x67/0xe0 __x64_sys_write+0x1a/0x20 do_syscall_64+0x3b/0xc0 entry_SYSCALL_64_after_hwframe+0x44/0xae I did some tests with the patch. (1) amdgpu module unloaded before the patch: real 0m0.976s user 0m0.000s sys 0m0.968s after the patch: real 0m0.981s user 0m0.000s sys 0m0.973s (2) amdgpu module loaded before the patch: real 0m35.365s user 0m0.000s sys 0m35.354s after the patch: real 0m1.049s user 0m0.000s sys 0m1.042s
Scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| CISA-ADPADP (enrichment) | 3.1 | Medium5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| NVDNVD · Analyzed | 3.1 | Medium5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
- EPSS (exploitation in 30 days)
- 0.17% · top 94% of all CVEs (6 Nov 2026)
- CISA SSVC
- Exploitation: none · Automatable: no · Technical impact: partial
The list uses the assigner's score when there is one, then CISA's, then NVD's: Medium 5.5.
Weakness
- CWE-noinfo Not enough information
- CWE-667 (opens in a new tab)All about CWE-667 and its CVEs
Affected products
- affected 4ef589dc9b10cdcae75a2b2b0e9b2c5e8a92c378 – < d3533ee20e9a0e2e8f60384da7450d43d1c63d1a
- affected 4ef589dc9b10cdcae75a2b2b0e9b2c5e8a92c378 – < 352715593e81b917ce1b321e794549815b850134
- affected 4ef589dc9b10cdcae75a2b2b0e9b2c5e8a92c378 – < a5389c80992f0001ee505838fe6a8b20897ce96e
- affected 4ef589dc9b10cdcae75a2b2b0e9b2c5e8a92c378 – < cebb0aceb21ad91429617a40e3a17444fabf1529
- affected 4ef589dc9b10cdcae75a2b2b0e9b2c5e8a92c378 – < c10a0f877fe007021d70f9cada240f42adc2b5db
- affected 4.14
- unaffected < 4.14
- unaffected 5.4.178 – ≤ 5.4.*
- unaffected 5.10.99 – ≤ 5.10.*
- unaffected 5.15.22 – ≤ 5.15.*
- unaffected 5.16.8 – ≤ 5.16.*
- unaffected 5.17 – ≤ *
References (5)
- https://git.kernel.org/stable/c/d3533ee20e9a0e2e8f60384da7450d43d1c63d1a (opens in a new tab)x_transferred
- https://git.kernel.org/stable/c/352715593e81b917ce1b321e794549815b850134 (opens in a new tab)x_transferred
- https://git.kernel.org/stable/c/a5389c80992f0001ee505838fe6a8b20897ce96e (opens in a new tab)x_transferred
- https://git.kernel.org/stable/c/cebb0aceb21ad91429617a40e3a17444fabf1529 (opens in a new tab)x_transferred
- https://git.kernel.org/stable/c/c10a0f877fe007021d70f9cada240f42adc2b5db (opens in a new tab)x_transferred
Sources
The same CVE in the primary databases and aggregators, to check against.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Badge for a README or a ticket
[](https://trackcve.app/cve/CVE-2022-48731)Record last updated .