[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2026012538-CVE-2026-23012-8a3d@gregkh>
Date: Sun, 25 Jan 2026 15:36:48 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2026-23012: mm/damon/core: remove call_control in inactive contexts
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
mm/damon/core: remove call_control in inactive contexts
If damon_call() is executed against a DAMON context that is not running,
the function returns error while keeping the damon_call_control object
linked to the context's call_controls list. Let's suppose the object is
deallocated after the damon_call(), and yet another damon_call() is
executed against the same context. The function tries to add the new
damon_call_control object to the call_controls list, which still has the
pointer to the previous damon_call_control object, which is deallocated.
As a result, use-after-free happens.
This can actually be triggered using the DAMON sysfs interface. It is not
easily exploitable since it requires the sysfs write permission and making
a definitely weird file writes, though. Please refer to the report for
more details about the issue reproduction steps.
Fix the issue by making two changes. Firstly, move the final
kdamond_call() for cancelling all existing damon_call() requests from
terminating DAMON context to be done before the ctx->kdamond reset. This
makes any code that sees NULL ctx->kdamond can safely assume the context
may not access damon_call() requests anymore. Secondly, let damon_call()
to cleanup the damon_call_control objects that were added to the
already-terminated DAMON context, before returning the error.
The Linux kernel CVE team has assigned CVE-2026-23012 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.17 with commit 004ded6bee11b8ed463cdc54b89a4390f4b64f6d and fixed in 6.18.7 with commit 23b061f421eef03647b512f3df48861706c87db3
Issue introduced in 6.17 with commit 004ded6bee11b8ed463cdc54b89a4390f4b64f6d and fixed in 6.19-rc6 with commit f9132fbc2e83baf2c45a77043672a63a675c9394
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-23012
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
mm/damon/core.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/23b061f421eef03647b512f3df48861706c87db3
https://git.kernel.org/stable/c/f9132fbc2e83baf2c45a77043672a63a675c9394
Powered by blists - more mailing lists