All of lore.kernel.org
 help / color / mirror / Atom feed
* CVE-2026-81008: interconnect: Fix use after free in icc_get() and of_icc_get_by_index()
@ 2026-09-11 19:41 Greg Kroah-Hartman
  0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-09-11 19:41 UTC (permalink / raw)
  To: linux-cve-announce; +Cc: Greg Kroah-Hartman

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

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

interconnect: Fix use after free in icc_get() and of_icc_get_by_index()

In of_icc_get_by_index() and icc_get(), if the dynamic allocation for
path->name fails via kasprintf(), the error handling path directly
calls kfree(path) to free the path object and returns an error.

However, prior to this point, path_find() calls path_init(), which
already links the path's requests into the req_list of the respective
interconnect nodes via hlist_add_head(). Directly invoking kfree(path)
leaves dangling pointers in the hlist. A subsequent call to icc_get()
or icc_set_bw() will traverse or modify these corrupted lists, triggering
a slab use afterfree.

KASAN report showing the vulnerability when reproducing via debugfs:

  BUG: KASAN: slab-use-after-free in path_find+0x6f8/0xcfc
  Write of size 8 at addr fff000000d43f748 by task sh/1
  ...
  Call trace:
   kasan_report+0xac/0xfc
   path_find+0x6f8/0xcfc
   icc_get+0x148/0x380
   icc_get_set+0xf8/0x2d0
  ...
  Freed by task 1:
   kfree+0x1a0/0x4a4
   icc_get+0x2cc/0x380
   icc_get_set+0xf8/0x2d0

Fix this by replacing kfree(path) with the proper teardown function,
icc_put(path), which safely removes the requests from the req_list using
hlist_del() and drops the provider usage references before freeing the
memory.

Additionally, in icc_get(), ensure that the icc_lock mutex is released
prior to calling icc_put(path) to avoid a deadlock, as icc_put()
internally acquires the same lock.

The Linux kernel CVE team has assigned CVE-2026-81008 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.6 with commit 3791163602f7140011a8dc1691cfe6ec0cb1ef07 and fixed in 6.12.109 with commit a4e9aa7907ade87d1d96853d14e05dcf682f8363
	Issue introduced in 5.6 with commit 3791163602f7140011a8dc1691cfe6ec0cb1ef07 and fixed in 6.18.50 with commit db8147c5d5ad2cfa21c2be566f95981b41b05de6
	Issue introduced in 5.6 with commit 3791163602f7140011a8dc1691cfe6ec0cb1ef07 and fixed in 7.2.4 with commit d715d19cfcfe99f361adb05cefc143a95d400b87
	Issue introduced in 5.6 with commit 3791163602f7140011a8dc1691cfe6ec0cb1ef07 and fixed in 7.3-rc1 with commit 25c7e242aca084fdc1098248194032317dca625d

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-81008
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:
	drivers/interconnect/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/a4e9aa7907ade87d1d96853d14e05dcf682f8363
	https://git.kernel.org/stable/c/db8147c5d5ad2cfa21c2be566f95981b41b05de6
	https://git.kernel.org/stable/c/d715d19cfcfe99f361adb05cefc143a95d400b87
	https://git.kernel.org/stable/c/25c7e242aca084fdc1098248194032317dca625d

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-11 19:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 19:41 CVE-2026-81008: interconnect: Fix use after free in icc_get() and of_icc_get_by_index() Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.