# CVE-2022-48731: linux: In the Linux kernel, the following vulnerability has been resolved:  mm/kmemleak: avoid scanning potential huge holes...

CVE-2022-48731 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-48731, released June 20, 2024. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2022-48731
- Priority: Routine
- CVSS: 5.5 (medium)
- EPSS: 0.0017
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jun 20, 2024

## 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

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 12.15 (bookworm) | 5.16.10-1 | [DEBIAN-CVE-2022-48731](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48731.md) | Jun 20, 2024 |
| Linux | linux Debian 13.5 (trixie) | 5.16.10-1 | [DEBIAN-CVE-2022-48731](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48731.md) | Jun 20, 2024 |
| Linux | linux Debian 14 | 5.16.10-1 | [DEBIAN-CVE-2022-48731](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48731.md) | Jun 20, 2024 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
