[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025122435-CVE-2023-54026-123c@gregkh>
Date: Wed, 24 Dec 2025 11:57:10 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2023-54026: opp: Fix use-after-free in lazy_opp_tables after probe deferral
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
opp: Fix use-after-free in lazy_opp_tables after probe deferral
When dev_pm_opp_of_find_icc_paths() in _allocate_opp_table() returns
-EPROBE_DEFER, the opp_table is freed again, to wait until all the
interconnect paths are available.
However, if the OPP table is using required-opps then it may already
have been added to the global lazy_opp_tables list. The error path
does not remove the opp_table from the list again.
This can cause crashes later when the provider of the required-opps
is added, since we will iterate over OPP tables that have already been
freed. E.g.:
Unable to handle kernel NULL pointer dereference when read
CPU: 0 PID: 7 Comm: kworker/0:0 Not tainted 6.4.0-rc3
PC is at _of_add_opp_table_v2 (include/linux/of.h:949
drivers/opp/of.c:98 drivers/opp/of.c:344 drivers/opp/of.c:404
drivers/opp/of.c:1032) -> lazy_link_required_opp_table()
Fix this by calling _of_clear_opp_table() to remove the opp_table from
the list and clear other allocated resources. While at it, also add the
missing mutex_destroy() calls in the error path.
The Linux kernel CVE team has assigned CVE-2023-54026 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.12 with commit 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 and fixed in 5.15.121 with commit 39a0e723d3502f6dc4c603f57ebe8dc7bcc4a4bc
Issue introduced in 5.12 with commit 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 and fixed in 6.1.40 with commit 76ab057de777723ec924654502d1a260ba7d7d54
Issue introduced in 5.12 with commit 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 and fixed in 6.4.5 with commit c05e76d6b249e5254c31994eedd06dd3cc90dee0
Issue introduced in 5.12 with commit 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 and fixed in 6.5 with commit b2a2ab039bd58f51355e33d7d3fc64605d7f870d
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-2023-54026
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/opp/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/39a0e723d3502f6dc4c603f57ebe8dc7bcc4a4bc
https://git.kernel.org/stable/c/76ab057de777723ec924654502d1a260ba7d7d54
https://git.kernel.org/stable/c/c05e76d6b249e5254c31994eedd06dd3cc90dee0
https://git.kernel.org/stable/c/b2a2ab039bd58f51355e33d7d3fc64605d7f870d
Powered by blists - more mailing lists