LiveActive security incident?Get immediate response
CVE Record

CVE-2026-46025: mm/damon/core: fix damon_call() vs kdamond_fn() exit race

In the Linux kernel, the following vulnerability has been resolved: mm/damon/core: fix damon_call() vs kdamond_fn() exit race Patch series "mm/damon/core: fix damon_call()/damos_walk() vs kdmond exit race". damon_call() and damos_walk() can leak memory and/or deadlock when they race with kdamond terminations. Fix those. This patch (of 2); When kdamond_fn() main loop is finished, the function cancels all remaining damon_call() requests and unset the damon_ctx->kdamond so that API callers and API functions themselves can know the context is terminated. damon_call() adds the caller's request to the queue first. After that, it shows if the kdamond of the damon_ctx is still running (damon_ctx->kdamond is set). Only if the kdamond is running, damon_call() starts waiting for the kdamond's handling of the newly added request. The damon_call() requests registration and damon_ctx->kdamond unset are protected by different mutexes, though. Hence, damon_call() could race with damon_ctx->kdamond unset, and result in deadlocks. For example, let's suppose kdamond successfully finished the damon_call() requests cancelling. Right after that, damon_call() is called for the context. It registers the new request, and shows the context is still running, because damon_ctx->kdamond unset is not yet done. Hence the damon_call() caller starts waiting for the handling of the request. However, the kdamond is already on the termination steps, so it never handles the new request. As a result, the damon_call() caller threads infinitely waits. Fix this by introducing another damon_ctx field, namely call_controls_obsolete. It is protected by the damon_ctx->call_controls_lock, which protects damon_call() requests registration. Initialize (unset) it in kdamond_fn() before letting damon_start() returns and set it just before the cancelling of remaining damon_call() requests is executed. damon_call() reads the obsolete field under the lock and avoids adding a new request. After this change, only requests that are guaranteed to be handled or cancelled are registered. Hence the after-registration DAMON context termination check is no longer needed. Remove it together. Note that the deadlock will not happen when damon_call() is called for repeat mode request. In tis case, damon_call() returns instead of waiting for the handling when the request registration succeeds and it shows the kdamond is running. However, if the request also has dealloc_on_cancel, the request memory would be leaked. The issue is found by sashiko [1].

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysisunknown

Security readout for executives and security teams

Plain-English summary

This Linux kernel issue is a race condition in DAMON, the kernel Data Access Monitor. Under specific shutdown timing, a caller can wait forever or leak request memory. The source does not show remote exploitation, privilege requirements, or real-world attacks, so business urgency depends on whether affected kernels and DAMON-related features are in use.

Executive priority

Treat this as a kernel maintenance item with elevated priority for hosts using DAMON or custom kernels. There is a credible stability risk, but the source does not justify emergency incident response or active-exploitation assumptions.

Technical view

The flaw is in mm/damon/core. damon_call() or damos_walk() can register requests while kdamond_fn() is terminating because request registration and kdamond state changes use different locks. A request may then never be handled or cancelled, causing an indefinite wait; repeat requests with dealloc_on_cancel may leak memory.

Likely exposure

Exposure appears limited to Linux systems running affected kernel versions or downstream builds containing the vulnerable DAMON code. The provided affected-version data is incomplete and partly inconsistent, so confirm exposure through vendor kernel advisories, package changelogs, or the referenced stable commits.

Exploitation context

The bundle reports no CISA KEV listing and provides no evidence of active exploitation. It describes a kernel race causing deadlock or memory leak, but does not establish remote reachability, attacker privileges, or a public exploit path.

Researcher notes

Key uncertainty is reachability. The record documents the race and fix rationale, but not triggering interfaces, privilege boundaries, or impacted distributions. Validate by mapping the deployed kernel tree to the stable commits and reviewing local DAMON usage paths.

Mitigation direction

  • Apply vendor kernel updates that include the referenced DAMON stable fixes.
  • Check distribution advisories for fixed package versions before broad rollout.
  • Prioritize systems using DAMON, memory monitoring, or custom kernel builds.
  • Use normal kernel reboot procedures after patch installation.
  • Avoid claiming mitigation by configuration unless vendor guidance confirms it.

Validation and detection

  • Inventory running kernel versions and downstream package release IDs.
  • Compare kernel source or changelog against the referenced stable commits.
  • Check whether DAMON-related functionality is enabled or operationally used.
  • Review vendor advisories for exact affected and fixed versions.
  • Test patched kernels in staging for workload and monitoring regressions.
Prepared
Confidence
medium
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2026-46025 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
0ADP providers
4Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux42b7491af14cbba2393329ce43d508a957bd94fa, 42b7491af14cbba2393329ce43d508a957bd94fa, 42b7491af14cbba2393329ce43d508a957bd94faunaffected
LinuxLinux6.14, 0, 6.18.27, 7.0.4, 7.1affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.