Skip to main content
← All vulnerabilities
CVE-2024-42090

pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 4.19.317, 5.4.279, 5.10.221, 5.15.162, 6.1.97, and 2 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Linux Linux

    From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in e65a0dc2e85efb28e182aca50218e8a056d0ce04; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in 420ce1261907e5dbeda1e4daffd5b6c76f8188c0; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in b813e3fd102a959c5b208ed68afe27e0137a561b; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in 01fe2f885f7813f8aed5d3704b384a97b1116a9e; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in b36efd2e3e22a329444b6b24fa48df6d20ae66e6; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in 4038c57bf61631219b31f1bd6e92106ec7f084dc; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in 48a7a7c9571c3e62f17012dd7f2063e926179ddd; From 42fed7ba44e4e8c1fb27b28ad14490cb1daff3c7 · fixed in adec57ff8e66aee632f3dd1f93787c13d112b7a1

  • Linux Linux

    3.10

  • KernelLinux

    From 3.10.0 · fixed in 4.19.317; From 4.20.0 · fixed in 5.4.279; From 5.5.0 · fixed in 5.10.221; From 5.11.0 · fixed in 5.15.162; From 5.16.0 · fixed in 6.1.97; From 6.2.0 · fixed in 6.6.37; From 6.7.0 · fixed in 6.9.8

References 8

git.kernel.org