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

mm/kmemleak: avoid soft lockup when scanning task stacks

Patch series "mm/kmemleak: avoid soft lockup when scanning task", v3.

kmemleak_scan() scans every task stack under one rcu_read_lock() with no
reschedule point, which can trip the soft lockup watchdog on hosts with
very many threads.

That prints the following message, depending on the workload+host
configuration:

watchdog: BUG: soft lockup - CPU#35 stuck for 22s! [kmemleak:537]
scan_block
kmemleak_scan
kmemleak_scan_thread
kthread

Patch 1 walks the tasks with find_ge_pid() so the scan reschedules between
tasks

Patches 2-3 let the scan loops stop early once a scan is interrupted.


This patch (of 3):

kmemleak_scan() walks every thread and scans its kernel stack under a
single rcu_read_lock() with no reschedule point. On a host with very many
threads -- amplified by KASAN/lockdep in debug builds -- this loop can hog
a CPU long enough to trip the soft lockup watchdog:

watchdog: BUG: soft lockup - CPU#35 stuck for 22s! [kmemleak:537]
scan_block
kmemleak_scan
kmemleak_scan_thread
kthread

A cond_resched() cannot be added directly: the loop runs inside an RCU
read-side critical section.

Walk the tasks one PID at a time with find_ge_pid(), taking the RCU read
lock only to look up and pin each task. The stack is then scanned with no
lock held, so cond_resched() runs between tasks and the scan stops early
on scan_should_stop(). This follows the next_tgid()/task_seq_get_next()
iteration pattern and keeps each RCU critical section short.
Published: 2026-09-11
Score: 4.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via soft lockup
Action: Apply Patch
AI Analysis

Impact

The kernel’s kmemleak scanner walks every task’s stack inside a single RCU read lock without a reschedule. On hosts with a very large number of threads, especially those running debug features such as KASAN or lockdep, this loop can consume a CPU core for extended periods and trigger the kernel watchdog to report a soft lockup. The resulting symptoms are a hung CPU and degraded system operation, effectively denying useful service to legitimate users. The vulnerability does not provide remote code execution or data disclosure but could be exploited if an attacker can create an excess of concurrent tasks to trigger the lockup. The likely attack vector is inferred from the description as an attacker creating many user‑space threads to trigger the kmemleak scan, leading to a soft lockup.

Affected Systems

All Linux kernel builds that contain the kmemleak scanning routine before the patch series v3 are affected. The vendor product is Linux: Linux. The vulnerability applies to kernel versions that have not yet applied the patch that walks tasks with find_ge_pid() and introduces early stopping; systems with many concurrent kernel threads or with KASAN/lockdep enabled are most at risk.

Risk and Exploitability

The CVSS score of 4.7 indicates moderate severity, and because the EPSS score is less than 1%, the likelihood of exploitation is very low. The vulnerability is not listed in the CISA KEV catalog. The patch mitigates the risk by limiting the size of each RCU critical section and allowing the scheduler to run between tasks, thereby preventing a soft lockup when the scan runs on systems with many threads or debug features that prolong the scan duration. Based on the description, it is inferred that the vulnerability can be triggered by forcing the kernel to perform extensive task stack scans, such as by spawning a large number of processes or enabling specific debugging facilities.

Generated by OpenCVE AI on September 15, 2026 at 19:07 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the kmemleak scan fix
  • If upgrading immediately is not possible, rebuild the kernel without debugging features such as KASAN or lockdep
  • Deploy monitoring for kernel watchdog 'soft lockup' messages to detect accidental occurrences early

Generated by OpenCVE AI on September 15, 2026 at 19:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sat, 12 Sep 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770

Sat, 12 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1050
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sat, 12 Sep 2026 08:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770

Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/kmemleak: avoid soft lockup when scanning task stacks Patch series "mm/kmemleak: avoid soft lockup when scanning task", v3. kmemleak_scan() scans every task stack under one rcu_read_lock() with no reschedule point, which can trip the soft lockup watchdog on hosts with very many threads. That prints the following message, depending on the workload+host configuration: watchdog: BUG: soft lockup - CPU#35 stuck for 22s! [kmemleak:537] scan_block kmemleak_scan kmemleak_scan_thread kthread Patch 1 walks the tasks with find_ge_pid() so the scan reschedules between tasks Patches 2-3 let the scan loops stop early once a scan is interrupted. This patch (of 3): kmemleak_scan() walks every thread and scans its kernel stack under a single rcu_read_lock() with no reschedule point. On a host with very many threads -- amplified by KASAN/lockdep in debug builds -- this loop can hog a CPU long enough to trip the soft lockup watchdog: watchdog: BUG: soft lockup - CPU#35 stuck for 22s! [kmemleak:537] scan_block kmemleak_scan kmemleak_scan_thread kthread A cond_resched() cannot be added directly: the loop runs inside an RCU read-side critical section. Walk the tasks one PID at a time with find_ge_pid(), taking the RCU read lock only to look up and pin each task. The stack is then scanned with no lock held, so cond_resched() runs between tasks and the scan stops early on scan_should_stop(). This follows the next_tgid()/task_seq_get_next() iteration pattern and keeps each RCU critical section short.
Title mm/kmemleak: avoid soft lockup when scanning task stacks
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-11T19:47:01.313Z

Reserved: 2026-09-11T19:38:34.763Z

Link: CVE-2026-89759

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:20:06.997

Modified: 2026-09-11T20:20:06.997

Link: CVE-2026-89759

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:47:01Z

Links: CVE-2026-89759 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-15T19:15:16Z

Weaknesses
  • CWE-1050

    Excessive Platform Resource Consumption within a Loop