CVE-2026-90364 in Linuxinfo

Summary

by MITRE • 09/17/2026

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

ACPI: processor: Unregister cpufreq notifier on init failure

acpi_processor_driver_init() registers the cpufreq policy notifier before registering the ACPI processor driver and setting up CPU hotplug state.

If driver_register() or cpuhp_setup_state() fails, the error path only unregisters the ACPI processor driver and the idle driver. The cpufreq notifier remains registered even though initialization failed.

Mirror the module exit path on the init failure path and unregister the cpufreq notifier when it has been registered.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/18/2026

The vulnerability described involves a resource management flaw within the Linux kernel's Advanced Configuration and Power Interface (ACPI) processor subsystem, specifically during the driver initialization sequence in the acpi_processor_driver_init function. This issue stems from an asymmetry between the registration of system components and their corresponding cleanup procedures when errors occur. During normal operation, the ACPI processor driver registers a notifier block with the cpufreq core to receive notifications about CPU frequency policy changes. This allows the kernel to coordinate power management states effectively across different processors. However, the initialization routine attempts to register this cpufreq policy notifier before fully establishing the ACPI processor driver and setting up the necessary CPU hotplug state handlers via cpuhp_setup_state.

The critical technical flaw lies in the error handling path of the init function. If either the driver_register call or the cpuhp_setup_state call fails, indicating that a subsequent initialization step could not be completed successfully, the kernel attempts to clean up by unregistering the ACPI processor driver and the idle driver. However, it neglects to unregister the previously registered cpufreq notifier. This oversight results in a dangling reference where the cpufreq subsystem retains knowledge of a notifier callback for a driver instance that is no longer active or properly initialized within the system context. In software engineering terms, this represents an improper cleanup mechanism leading to resource leakage and potential state inconsistency.

From a security perspective, while this specific flaw may not immediately lead to remote code execution, it introduces significant stability risks and potential avenues for denial of service attacks. A dangling notifier can trigger callbacks on non-existent or invalid data structures if the cpufreq subsystem attempts to notify registered entities about frequency changes. This could result in kernel panics, system crashes, or unpredictable behavior when CPU frequency scaling events occur. Furthermore, such resource leaks contribute to memory fragmentation and state corruption over time, especially in systems with frequent driver load-unload cycles or during hotplug operations where CPUs are added or removed dynamically. The lack of proper cleanup violates the principle of least privilege by maintaining access paths that should have been revoked upon initialization failure.

This vulnerability aligns with CWE-401, which describes a missing release of memory after successful allocation, and more specifically CWE-756, which relates to incorrect relational operator usage leading to improper resource management in error handling paths. In the context of the MITRE ATT&CK framework for enterprise security, this type of flaw can be categorized under Tactic TA0004 Impact, particularly affecting Availability through system instability or crashes caused by invalid memory accesses triggered by the dangling notifier. It also touches upon defensive failure patterns where the software fails to properly handle exceptional conditions during setup phases.

To mitigate this vulnerability and prevent similar issues in kernel development, it is essential to ensure that every resource acquisition has a corresponding release mechanism on all execution paths, including error branches. Developers must mirror the module exit path logic within the init failure path, ensuring that if the cpufreq notifier was successfully registered, it is unregistered before returning an error code from acpi_processor_driver_init. This practice ensures atomicity in driver initialization and prevents orphaned callbacks. Additionally, implementing robust static analysis tools to detect asymmetrical resource management patterns can help identify such flaws early in the development lifecycle. Regular auditing of ACPI subsystem changes against established coding standards for kernel drivers is also recommended to maintain system integrity and stability.

Responsible

Linux

Reservation

09/11/2026

Disclosure

09/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you need the next level of professionalism?

Upgrade your account now!