Skip to main content

Linux Kernel EUVDEUVD-2026-25545

| CVE-2026-31652 HIGH
Use After Free (CWE-416)
2026-04-24 Linux GHSA-jp52-g472-3cpx
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
1.9 LOW

DAMON control needs root-level local access (PR:H), the UAF needs winning a race against kdamond termination (AC:H), and the realistic impact is a memory leak (A:L, no C/I).

3.1 AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
4.0 AV:L/AC:H/AT:N/PR:H/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 02:46 vuln.today
CVSS changed
Apr 27, 2026 - 20:22 NVD
7.8 (HIGH)
Patch released
Apr 27, 2026 - 20:16 nvd
Patch available
Patch available
Apr 24, 2026 - 16:16 EUVD
EUVD ID Assigned
Apr 24, 2026 - 15:00 euvd
EUVD-2026-25545
CVE Published
Apr 24, 2026 - 14:45 nvd
HIGH 7.8

DescriptionCVE.org

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

mm/damon/stat: deallocate damon_call() failure leaking damon_ctx

damon_stat_start() always allocates the module's damon_ctx object (damon_stat_context). Meanwhile, if damon_call() in the function fails, the damon_ctx object is not deallocated. Hence, if the damon_call() is failed, and the user writes Y to “enabled” again, the previously allocated damon_ctx object is leaked.

This cannot simply be fixed by deallocating the damon_ctx object when damon_call() fails. That's because damon_call() failure doesn't guarantee the kdamond main function, which accesses the damon_ctx object, is completely finished. In other words, if damon_stat_start() deallocates the damon_ctx object after damon_call() failure, the not-yet-terminated kdamond could access the freed memory (use-after-free).

Fix the leak while avoiding the use-after-free by keeping returning damon_stat_start() without deallocating the damon_ctx object after damon_call() failure, but deallocating it when the function is invoked again and the kdamond is completely terminated. If the kdamond is not yet terminated, simply return -EAGAIN, as the kdamond will soon be terminated.

The issue was discovered [1] by sashiko.

AnalysisAI

Memory leak (with latent use-after-free risk) in the Linux kernel's DAMON monitoring subsystem (mm/damon/stat) allows a local, privileged user to leak damon_ctx objects and potentially trigger use-after-free by repeatedly toggling the DAMON_STAT 'enabled' control after a damon_call() failure. Affected are kernels on the 6.17-6.19 line prior to the stable fixes; the flaw is classified CWE-416 (Use After Free). There is no public exploit identified at time of analysis, and EPSS is negligible (0.02%, 4th percentile).

Technical ContextAI

DAMON (Data Access MONitor) is a Linux kernel data-access monitoring framework; its 'stat' module (mm/damon/stat.c) exposes an 'enabled' sysfs-style toggle that, when set, calls damon_stat_start() to allocate a damon_ctx (damon_stat_context) and register it via damon_call(). The root cause is a resource/lifetime management error: on damon_call() failure the allocated damon_ctx is never freed, so re-enabling leaks it. Naively freeing it on failure is unsafe because the kdamond kernel thread may still hold and dereference the ctx, which is the CWE-416 use-after-free hazard the fix explicitly guards against by deferring deallocation until the kdamond has fully terminated (returning -EAGAIN otherwise). The CPE data lists only the generic cpe:2.3:a:linux:linux:*, so exact affected boundaries come from the commit/version metadata rather than CPE.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - 6.18.23, 6.19.13, or 7.0 (or later), or apply the corresponding upstream commits (447f8870b484..., 16c92e9bf55f..., 4c04c6b47c36...) available at git.kernel.org. Track your distribution's advisory (Red Hat and SUSE builds are expected to carry the backport) and reboot into the patched kernel. If immediate patching is not possible, a targeted compensating control is to disable or avoid enabling the DAMON stat feature - do not write 'Y' to the DAMON_STAT 'enabled' control - which prevents the leak path entirely at the cost of losing DAMON access-monitoring statistics; additionally, restrict access to DAMON's sysfs/debugfs control interfaces to trusted root-only contexts so unprivileged or containerized workloads cannot toggle it. These mitigations only reduce exposure and are not a substitute for the kernel update.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

EUVD-2026-25545 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy