CVE-2025-39737CWE-401

CVE-2025-39737

Medium · published September 11, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
6.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

mm/kmemleak: avoid soft lockup in __kmemleak_do_cleanup()

A soft lockup warning was observed on a relative small system x86-64

system with 16 GB of memory when running a debug kernel with kmemleak

enabled.

watchdog: BUG: soft lockup - CPU#8 stuck for 33s! [kworker/8:1:134]

The test system was running a workload with hot unplug happening in

parallel. Then kemleak decided to disable itself due to its inability to

allocate more kmemleak objects. The debug kernel has its

CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE set to 40,000.

The soft lockup happened in kmemleak_do_cleanup() when the existing

kmemleak objects were being removed and deleted one-by-one in a loop via a

workqueue. In this particular case, there are at least 40,000 objects

that need to be processed and given the slowness of a debug kernel and the

fact that a raw_spinlock has to be acquired and released in

__delete_object(), it could take a while to properly handle all these

objects.

As kmemleak has been disabled in this case, the object removal and

deletion process can be further optimized as locking isn't really needed.

However, it is probably not worth the effort to optimize for such an edge

case that should rarely happen. So the simple solution is to call

cond_resched() at periodic interval in the iteration loop to avoid soft

lockup.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.7th percentile
Weakness
CWE-401 · Missing Release of Memory after Effective Lifetime
Published
2025-09-11T21:15Z
Affected products (16)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4.1, < 5.4.2975.4.297
linux/linux_kernel≥ 5.5, < 5.10.2415.10.241
linux/linux_kernel≥ 5.11, < 5.15.1905.15.190
linux/linux_kernel≥ 5.16, < 6.1.1496.1.149
linux/linux_kernel≥ 6.2, < 6.6.1036.6.103
linux/linux_kernel≥ 6.7, < 6.12.436.12.43
linux/linux_kernel≥ 6.13, < 6.15.116.15.11
linux/linux_kernel≥ 6.16, < 6.16.26.16.2
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (12)
EPSS history
Timeline
  • 11 SEP 16:52Z
    mm/kmemleak: avoid soft lockup in __kmemleak_do_cleanup()
    cvelistv5