| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-42090: pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER |
| |
| Description |
| =========== |
| |
| 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. |
| |
| The Linux kernel CVE team has assigned CVE-2024-42090 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 4.19.317 with commit e65a0dc2e85efb28e182aca50218e8a056d0ce04 |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 5.4.279 with commit 420ce1261907e5dbeda1e4daffd5b6c76f8188c0 |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 5.10.221 with commit b813e3fd102a959c5b208ed68afe27e0137a561b |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 5.15.162 with commit 01fe2f885f7813f8aed5d3704b384a97b1116a9e |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 6.1.97 with commit b36efd2e3e22a329444b6b24fa48df6d20ae66e6 |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 6.6.37 with commit 4038c57bf61631219b31f1bd6e92106ec7f084dc |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 6.9.8 with commit 48a7a7c9571c3e62f17012dd7f2063e926179ddd |
| Issue introduced in 3.10 with commit 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 and fixed in 6.10 with commit adec57ff8e66aee632f3dd1f93787c13d112b7a1 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-42090 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/pinctrl/core.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/e65a0dc2e85efb28e182aca50218e8a056d0ce04 |
| https://git.kernel.org/stable/c/420ce1261907e5dbeda1e4daffd5b6c76f8188c0 |
| https://git.kernel.org/stable/c/b813e3fd102a959c5b208ed68afe27e0137a561b |
| https://git.kernel.org/stable/c/01fe2f885f7813f8aed5d3704b384a97b1116a9e |
| https://git.kernel.org/stable/c/b36efd2e3e22a329444b6b24fa48df6d20ae66e6 |
| https://git.kernel.org/stable/c/4038c57bf61631219b31f1bd6e92106ec7f084dc |
| https://git.kernel.org/stable/c/48a7a7c9571c3e62f17012dd7f2063e926179ddd |
| https://git.kernel.org/stable/c/adec57ff8e66aee632f3dd1f93787c13d112b7a1 |