CVE-2026-23012
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
25/01/2026
Last modified:
25/03/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mm/damon/core: remove call_control in inactive contexts<br />
<br />
If damon_call() is executed against a DAMON context that is not running,<br />
the function returns error while keeping the damon_call_control object<br />
linked to the context&#39;s call_controls list. Let&#39;s suppose the object is<br />
deallocated after the damon_call(), and yet another damon_call() is<br />
executed against the same context. The function tries to add the new<br />
damon_call_control object to the call_controls list, which still has the<br />
pointer to the previous damon_call_control object, which is deallocated. <br />
As a result, use-after-free happens.<br />
<br />
This can actually be triggered using the DAMON sysfs interface. It is not<br />
easily exploitable since it requires the sysfs write permission and making<br />
a definitely weird file writes, though. Please refer to the report for<br />
more details about the issue reproduction steps.<br />
<br />
Fix the issue by making two changes. Firstly, move the final<br />
kdamond_call() for cancelling all existing damon_call() requests from<br />
terminating DAMON context to be done before the ctx->kdamond reset. This<br />
makes any code that sees NULL ctx->kdamond can safely assume the context<br />
may not access damon_call() requests anymore. Secondly, let damon_call()<br />
to cleanup the damon_call_control objects that were added to the<br />
already-terminated DAMON context, before returning the error.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.17.1 (including) | 6.18.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.17:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



