CVE-2026-64503 in Linux
Summary
by MITRE • 07/25/2026
In the Linux kernel, the following vulnerability has been resolved:
iio: accel: kxsd9: fix runtime PM imbalance on write_raw() error
kxsd9_write_raw() takes a runtime PM reference with pm_runtime_get_sync() but returns -EINVAL directly when a scale with a non-zero integer part is requested, skipping the matching pm_runtime_put_autosuspend(). This leaks a runtime PM usage-counter reference on every such write, after which the device can no longer autosuspend.
Set the error code and fall through to the existing put instead of returning early.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Analysis
by VulDB Data Team • 07/26/2026
The vulnerability in question affects the Linux kernel's industrial input/output subsystem specifically within the kxsd9 accelerometer driver implementation. This issue represents a runtime power management imbalance that occurs during write_raw() operations when handling scale parameters with non-zero integer components. The flaw resides in how the driver manages runtime power management references, creating a scenario where resource cleanup is bypassed under error conditions.
The technical implementation of this vulnerability stems from improper error handling within the kxsd9_write_raw() function which employs pm_runtime_get_sync() to acquire a runtime PM reference before processing write operations. When the function encounters a scale parameter with a non-zero integer part, it immediately returns -EINVAL without executing the corresponding pm_runtime_put_autosuspend() call that would normally release the acquired reference. This pattern creates a resource leak where each erroneous write operation increments the runtime PM usage counter without decrementing it.
The operational impact of this vulnerability manifests as progressive device power management degradation within the system. Each failed write_raw() operation with invalid scale parameters causes a leakage of runtime PM references, eventually preventing the accelerometer device from entering autosuspend states. This behavior creates unnecessary power consumption and can lead to system performance degradation, particularly in battery-powered devices where efficient power management is critical. The vulnerability affects systems utilizing the kxsd9 accelerometer driver and can potentially compromise overall system power efficiency.
According to CWE classification, this represents a CWE-459: Incomplete Cleanup vulnerability, specifically manifesting as improper resource management within runtime power management contexts. From an ATT&CK perspective, this could be categorized under T1578: Modify or Remove Software and Hardware Components, as it affects system-level power management functionality. The fix implementation requires modifying the error handling path to ensure that pm_runtime_put_autosuspend() is called regardless of whether the function completes successfully or encounters an error condition.
The recommended mitigation strategy involves implementing proper error flow control within the kxsd9_write_raw() function by setting the error code and allowing execution to naturally proceed through the existing cleanup code path rather than returning early. This ensures that all acquired runtime PM references are properly released, maintaining the integrity of the power management subsystem and preventing resource leakage that could accumulate over time and eventually disable device autosuspend capabilities entirely.