CVE-2023-54026

opp: Fix use-after-free in lazy_opp_tables after probe deferral

State
Published
Severity
7.8 High
Published
Dec 24, 2025
Updated
Aug 5, 2026
Reserved
Dec 24, 2025

Read the record on cve.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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 to before 39a0e723d3502f6dc4c603f57ebe8dc7bcc4a4bcAffected
  • 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 to before 76ab057de777723ec924654502d1a260ba7d7d54Affected
  • 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 to before c05e76d6b249e5254c31994eedd06dd3cc90dee0Affected
  • 7eba0c7641b0009818e469dbfcdd87a0155ab9d4 to before b2a2ab039bd58f51355e33d7d3fc64605d7f870dAffected
LinuxLinux
  • 5.12Affected
  • before 5.12Not affected
  • 5.15.121 through 5.15.*Not affected
  • 6.1.40 through 6.1.*Not affected
  • 6.4.5 through 6.4.*Not affected
  • 6.5 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.