Skip to main content

CVE-2022-48937: Vulnerability in Linux Linux

High
VulnerabilityCVE-2022-48937cvecve-2022-48937
Published: Thu Aug 22 2024 (08/22/2024, 03:31:32 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: io_uring: add a schedule point in io_add_buffers() Looping ~65535 times doing kmalloc() calls can trigger soft lockups, especially with DEBUG features (like KASAN). [ 253.536212] watchdog: BUG: soft lockup - CPU#64 stuck for 26s! [b219417889:12575] [ 253.544433] Modules linked in: vfat fat i2c_mux_pca954x i2c_mux spidev cdc_acm xhci_pci xhci_hcd sha3_generic gq(O) [ 253.544451] CPU: 64 PID: 12575 Comm: b219417889 Tainted: G S O 5.17.0-smp-DEV #801 [ 253.544457] RIP: 0010:kernel_text_address (./include/asm-generic/sections.h:192 ./include/linux/kallsyms.h:29 kernel/extable.c:67 kernel/extable.c:98) [ 253.544464] Code: 0f 93 c0 48 c7 c1 e0 63 d7 a4 48 39 cb 0f 92 c1 20 c1 0f b6 c1 5b 5d c3 90 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 53 48 89 fb <48> c7 c0 00 00 80 a0 41 be 01 00 00 00 48 39 c7 72 0c 48 c7 c0 40 [ 253.544468] RSP: 0018:ffff8882d8baf4c0 EFLAGS: 00000246 [ 253.544471] RAX: 1ffff1105b175e00 RBX: ffffffffa13ef09a RCX: 00000000a13ef001 [ 253.544474] RDX: ffffffffa13ef09a RSI: ffff8882d8baf558 RDI: ffffffffa13ef09a [ 253.544476] RBP: ffff8882d8baf4d8 R08: ffff8882d8baf5e0 R09: 0000000000000004 [ 253.544479] R10: ffff8882d8baf5e8 R11: ffffffffa0d59a50 R12: ffff8882eab20380 [ 253.544481] R13: ffffffffa0d59a50 R14: dffffc0000000000 R15: 1ffff1105b175eb0 [ 253.544483] FS: 00000000016d3380(0000) GS:ffff88af48c00000(0000) knlGS:0000000000000000 [ 253.544486] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 253.544488] CR2: 00000000004af0f0 CR3: 00000002eabfa004 CR4: 00000000003706e0 [ 253.544491] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 253.544492] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 253.544494] Call Trace: [ 253.544496] <TASK> [ 253.544498] ? io_queue_sqe (fs/io_uring.c:7143) [ 253.544505] __kernel_text_address (kernel/extable.c:78) [ 253.544508] unwind_get_return_address (arch/x86/kernel/unwind_frame.c:19) [ 253.544514] arch_stack_walk (arch/x86/kernel/stacktrace.c:27) [ 253.544517] ? io_queue_sqe (fs/io_uring.c:7143) [ 253.544521] stack_trace_save (kernel/stacktrace.c:123) [ 253.544527] ____kasan_kmalloc (mm/kasan/common.c:39 mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:515) [ 253.544531] ? ____kasan_kmalloc (mm/kasan/common.c:39 mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:515) [ 253.544533] ? __kasan_kmalloc (mm/kasan/common.c:524) [ 253.544535] ? kmem_cache_alloc_trace (./include/linux/kasan.h:270 mm/slab.c:3567) [ 253.544541] ? io_issue_sqe (fs/io_uring.c:4556 fs/io_uring.c:4589 fs/io_uring.c:6828) [ 253.544544] ? __io_queue_sqe (fs/io_uring.c:?) [ 253.544551] __kasan_kmalloc (mm/kasan/common.c:524) [ 253.544553] kmem_cache_alloc_trace (./include/linux/kasan.h:270 mm/slab.c:3567) [ 253.544556] ? io_issue_sqe (fs/io_uring.c:4556 fs/io_uring.c:4589 fs/io_uring.c:6828) [ 253.544560] io_issue_sqe (fs/io_uring.c:4556 fs/io_uring.c:4589 fs/io_uring.c:6828) [ 253.544564] ? __kasan_slab_alloc (mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:469) [ 253.544567] ? __kasan_slab_alloc (mm/kasan/common.c:39 mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:469) [ 253.544569] ? kmem_cache_alloc_bulk (mm/slab.h:732 mm/slab.c:3546) [ 253.544573] ? __io_alloc_req_refill (fs/io_uring.c:2078) [ 253.544578] ? io_submit_sqes (fs/io_uring.c:7441) [ 253.544581] ? __se_sys_io_uring_enter (fs/io_uring.c:10154 fs/io_uring.c:10096) [ 253.544584] ? __x64_sys_io_uring_enter (fs/io_uring.c:10096) [ 253.544587] ? do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80) [ 253.544590] ? entry_SYSCALL_64_after_hwframe (??:?) [ 253.544596] __io_queue_sqe (fs/io_uring.c:?) [ 253.544600] io_queue_sqe (fs/io_uring.c:7143) [ 253.544603] io_submit_sqe (fs/io_uring.c:?) [ 253.544608] io_submit_sqes (fs/io_uring.c:?) [ 253.544612] __se_sys_io_uring_enter (fs/io_uring.c:10154 fs/io_uri ---truncated---

AI-Powered Analysis

AILast updated: 06/30/2025, 23:56:47 UTC

Technical Analysis

CVE-2022-48937 is a vulnerability identified in the Linux kernel's io_uring subsystem, specifically within the io_add_buffers() function. The vulnerability arises due to a loop that can iterate approximately 65,535 times, invoking kmalloc() calls repeatedly without adequate scheduling points. This behavior can trigger a soft lockup condition, where the CPU becomes unresponsive for extended periods, as evidenced by kernel watchdog messages indicating a CPU stuck for over 26 seconds. The issue is exacerbated when kernel debugging features such as Kernel Address Sanitizer (KASAN) are enabled, which add overhead and increase the likelihood of triggering the lockup. The vulnerability manifests as a denial-of-service (DoS) condition caused by resource exhaustion and CPU lockup, potentially impacting system availability. The technical details include kernel stack traces showing the involvement of io_uring functions and memory allocation routines. No known exploits are reported in the wild, and no CVSS score has been assigned yet. The vulnerability affects specific Linux kernel versions identified by commit hashes, indicating it is present in development or certain stable branches prior to patching. The root cause is the lack of a scheduling point in a high iteration loop within io_add_buffers(), leading to prolonged CPU occupation and watchdog-triggered soft lockups.

Potential Impact

For European organizations relying on Linux-based systems, especially those utilizing io_uring for high-performance asynchronous I/O operations, this vulnerability poses a risk of service disruption due to CPU soft lockups. Critical infrastructure, cloud service providers, telecommunications, and enterprises running Linux servers could experience degraded availability or downtime if the vulnerability is triggered. Systems with debugging features enabled (common in development or testing environments) are more susceptible, but production systems could also be affected under heavy I/O load scenarios exploiting this flaw. The impact is primarily on availability, potentially leading to denial-of-service conditions that disrupt business operations, data processing, and customer-facing services. Given Linux's widespread adoption across European industries and public sector entities, the vulnerability could have broad implications if exploited or triggered inadvertently. However, the lack of known exploits and the requirement for specific kernel versions somewhat limit immediate risk. Still, unpatched systems remain vulnerable to accidental or malicious triggering of the soft lockup, which could be leveraged in targeted attacks or cause operational instability.

Mitigation Recommendations

European organizations should prioritize updating Linux kernels to versions where this vulnerability is patched, ensuring that the fix introducing scheduling points in io_add_buffers() is applied. Kernel updates should be tested in staging environments to verify stability before deployment. For environments where immediate patching is not feasible, mitigating the risk includes disabling or limiting the use of io_uring features, especially in workloads that may invoke large buffer additions. Monitoring system logs for watchdog soft lockup messages and unusual CPU usage patterns can provide early detection of exploitation attempts or accidental triggers. Additionally, organizations should review kernel debugging configurations, disabling KASAN and similar features in production to reduce susceptibility. Implementing resource limits and I/O request throttling can help prevent excessive kmalloc() calls. Finally, maintaining robust incident response plans to quickly address potential DoS conditions caused by this vulnerability is advisable.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-08-22T01:27:53.623Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d982fc4522896dcbe6676

Added to database: 5/21/2025, 9:09:03 AM

Last enriched: 6/30/2025, 11:56:47 PM

Last updated: 8/4/2025, 3:42:25 PM

Views: 19

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats