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.
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: pinctrl: soluciona el punto muerto en create_pinctrl() al manejar -EPROBE_DEFER En create_pinctrl(), pinctrl_maps_mutex se adquiere antes de llamar a add_setting(). Si add_setting() devuelve -EPROBE_DEFER, create_pinctrl() llama a pinctrl_free(). Sin embargo, pinctrl_free() intenta adquirir pinctrl_maps_mutex, que ya está en manos de create_pinctrl(), lo que lleva a un posible punto muerto. Este parche resuelve el problema liberando pinctrl_maps_mutex antes de llamar a pinctrl_free(), evitando el punto muerto. Este error fue descubierto y resuelto utilizando Coverity Static Analysis Security Testing (SAST) por Synopsys, Inc.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-667
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd340a8ff00> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36a618180> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36bacdb80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36a619980> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd340a8c7c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd340a8c940> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b352540> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |