CVE-2026-23387 in Linuxinfo

Summary

by MITRE • 03/25/2026

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

pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()

devm_add_action_or_reset() already invokes the action on failure, so the explicit put causes a double-put.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 03/30/2026

The vulnerability identified as CVE-2026-23387 resides within the Linux kernel's pinctrl subsystem, specifically affecting the Cirrus Logic cs42l43 audio codec driver. This issue represents a classic resource management flaw that can lead to system instability and potential security implications. The vulnerability manifests in the cs42l43_pin_probe() function where improper handling of device resource cleanup operations occurs, creating a scenario that violates fundamental kernel programming practices and can result in undefined behavior.

The technical root cause of this vulnerability stems from a misunderstanding of how the devm_add_action_or_reset() function operates within the Linux kernel's device management framework. This function is designed to register cleanup actions that are automatically executed when a device is removed or when an operation fails, ensuring proper resource deallocation. However, the cs42l43 driver incorrectly implements a subsequent explicit put operation after calling devm_add_action_or_reset(), creating a situation where the same resource cleanup action is invoked twice. This double invocation occurs because devm_add_action_or_reset() itself calls the registered action function when failure conditions are detected, making the manual put operation redundant and problematic.

From an operational perspective, this double-put vulnerability can manifest in several ways that impact system stability and reliability. When the cs42l43 audio codec driver initializes, if any failure occurs during the pin probe process, the kernel's device management subsystem will automatically execute the registered cleanup action through devm_add_action_or_reset(). The subsequent explicit put operation then attempts to perform the same cleanup action again, potentially leading to memory corruption, null pointer dereferences, or other undefined behaviors that could compromise system integrity. This vulnerability is particularly concerning in embedded systems or devices where audio codec drivers are critical components and system stability is paramount.

The impact of this vulnerability extends beyond simple resource management issues and can be analyzed through the lens of CWE-459, which addresses incomplete cleanup scenarios in software systems. Additionally, this flaw aligns with ATT&CK technique T1490, which involves creating or manipulating systems to cause degradation or loss of availability, as the double-put operation could potentially destabilize the system's device management framework. The vulnerability represents a failure in proper device resource lifecycle management that could be exploited to cause system crashes or create conditions where malicious actors might leverage the instability for further attacks.

Mitigation strategies for this vulnerability require immediate patching of the Linux kernel to correct the implementation in the cs42l43 driver. The fix involves removing the explicit put operation that occurs after devm_add_action_or_reset() calls, allowing the device management framework to handle cleanup operations properly. System administrators should prioritize updating their kernel versions to include this fix, particularly in production environments where audio codec drivers are actively used. The vulnerability also highlights the importance of proper kernel driver development practices and adherence to device management APIs, emphasizing the need for thorough code reviews and testing of device driver implementations to prevent similar issues in other subsystems.

The broader implications of this vulnerability extend to the Linux kernel's overall device management architecture, where proper resource handling is critical for system stability. This issue serves as a reminder of the complexity involved in kernel-level programming and the potential for subtle bugs to cause significant system instability. The fix demonstrates the importance of understanding the semantics of device management functions and their interaction with resource cleanup operations, as well as the need for comprehensive testing of driver initialization and error handling paths to prevent resource management anomalies that could be exploited by attackers or cause system failures.

Responsible

Linux

Reservation

01/13/2026

Disclosure

03/25/2026

Moderation

accepted

CPE

ready

EPSS

0.00018

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!