Vulnerability in driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction
Summary
GSD-2022-1003268: driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction. Affects Kernel versions >= 35a672363ab3e8dfe4ebcadb4dd0b2d06bb85ebe, < 29357883a89193863f3cc6a2c5e0b42ceb022761. No fix is published. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The driver core is a fundamental component of the Linux Kernel that manages device drivers and their interactions with hardware devices. It provides an interface for device drivers to register themselves and handle device initialization, probing, and removal. The driver core plays a crucial role in the functioning of the Linux Kernel and ensures proper device management and communication.
However, a vulnerability has been identified in the driver core related to the interaction between the wait_for_device_probe() function and the deferred_probe_timeout mechanism. This vulnerability can potentially lead to unexpected behavior and system instability.
Vulnerability Detail
The vulnerability arises from an issue in the wait_for_device_probe() function and its interaction with the deferred_probe_timeout mechanism. When a device driver is being probed, the wait_for_device_probe() function is called to wait for the device to complete the probing process. However, if the probing process takes longer than the specified deferred_probe_timeout value, the wait_for_device_probe() function may not handle the timeout correctly.
This vulnerability can be exploited by an attacker to cause a denial-of-service (DoS) condition or potentially execute arbitrary code in the context of the kernel. By manipulating the timing of device probing and triggering the timeout, an attacker may be able to disrupt the normal operation of the system or gain elevated privileges.
The vulnerability was introduced in Linux Kernel version v5.7 by commit 35a672363ab3e8dfe4ebcadb4dd0b2d06bb85ebe and has been fixed in version v5.15.47 by commit 29357883a89193863f3cc6a2c5e0b42ceb022761.
How To Fix
No fixed version is published for this vulnerability.
Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →
Workaround
As a temporary workaround, users can modify the deferred_probe_timeout value to a lower value in the kernel configuration. By reducing the timeout duration, the window of opportunity for an attacker to exploit the vulnerability is minimized. However, this workaround may impact the normal operation of device probing and should be considered as a temporary measure until the kernel can be updated to a fixed version.
To modify the deferred_probe_timeout value, follow these steps:
- Open the kernel configuration file.
- Locate the configuration parameter for deferred_probe_timeout.
- Reduce the value to a lower duration.
- Save the configuration file and rebuild the kernel.
- Restart the system with the updated kernel configuration.
Conclusion
The vulnerability in the driver core related to the wait_for_device_probe() function and deferred_probe_timeout interaction can have significant security implications. It is crucial to update the Linux Kernel to version v5.15.47 or later to ensure the vulnerability is patched and the system is protected. In the meantime, users can apply a temporary workaround by modifying the deferred_probe_timeout value in the kernel configuration. For further assistance and support in vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for Kernel →
FAQ
The driver core is a fundamental component of the Linux Kernel that manages device drivers and their interactions with hardware devices. It provides an interface for device drivers to register themselves and handle device initialization, probing, and removal.
This vulnerability can lead to unexpected behavior and system instability. It can be exploited by an attacker to cause a denial-of-service (DoS) condition or potentially execute arbitrary code in the context of the kernel.
To fix this vulnerability, it is recommended to update the Linux Kernel to version v5.15.47 or later. The fix has been implemented in the mentioned commit (29357883a89193863f3cc6a2c5e0b42ceb022761).
Yes, as a temporary workaround, users can modify the deferred_probe_timeout value to a lower duration in the kernel configuration. However, this should be considered as a temporary measure until the kernel can be updated to a fixed version.
To modify the deferred_probe_timeout value, follow these steps:
- Open the kernel configuration file.
- Locate the configuration parameter for deferred_probe_timeout.
- Reduce the value to a lower duration.
- Save the configuration file and rebuild the kernel.
- Restart the system with the updated kernel configuration.
Related vulnerabilities
Recent vulnerabilities recorded for Kernel.