Medium · published July 29, 2024
In the Linux kernel, the following vulnerability has been resolved:
pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER
In create_pinctrl(), pinctrl_maps_mutex is acquired before calling
add_setting(). If add_setting() returns -EPROBE_DEFER, create_pinctrl()
calls pinctrl_free(). However, pinctrl_free() attempts to acquire
pinctrl_maps_mutex, which is already held by create_pinctrl(), leading to
a potential deadlock.
This patch resolves the issue by releasing pinctrl_maps_mutex before
calling pinctrl_free(), preventing the deadlock.
This bug was discovered and resolved using Coverity Static Analysis
Security Testing (SAST) by Synopsys, Inc.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 3.10, < 4.19.317 | 4.19.317 |
| linux/linux_kernel | ≥ 4.20, < 5.4.279 | 5.4.279 |
| linux/linux_kernel | ≥ 5.5, < 5.10.221 | 5.10.221 |
| linux/linux_kernel | ≥ 5.11, < 5.15.162 | 5.15.162 |
| linux/linux_kernel | ≥ 5.16, < 6.1.97 | 6.1.97 |
| linux/linux_kernel | ≥ 6.2, < 6.6.37 | 6.6.37 |
| linux/linux_kernel | ≥ 6.7, < 6.9.8 | 6.9.8 |