Executive brief
The Linux kernel's Apple SoC CPU frequency scaling driver has a memory management defect where Operating Point (OPP) tables loaded from firmware are not properly cleaned up on certain error paths, potentially causing memory leaks. This affects systems running on Apple silicon (such as M1/M2 Macs) that rely on this driver for dynamic CPU frequency management.
Technical details
The vulnerability is a resource cleanup bug in the apple-soc-cpufreq driver (drivers/cpufreq/apple-soc-cpufreq.c). The apple_soc_cpufreq_init() function adds OPP tables from firmware but uses an incorrect cleanup helper (dev_pm_opp_remove_all_dynamic()) which does not properly release firmware-loaded tables on failure paths. The fix replaces the cleanup logic to use dev_pm_opp_of_cpumask_remove_table() paired with dev_pm_opp_of_cpumask_add_table(), ensuring symmetric allocation and deallocation. The defect occurs during driver initialization when multiple failure conditions can be triggered (cluster info retrieval failure, OPP table loading failure, cpufreq table initialization failure), each potentially leaking kernel memory if cleanup is incomplete.
Affected products
- Linux Linux kernel affected versions prior to the fix commit d87cb889dc7ab1f2deecadf2a5e9023184bd7900
Timeline
- 2026-09-11: disclosed: CVE-2026-89572 published on NVD