CVE Catalog

CVE-2024-47141

MediumCVSS 5.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

7th percentile - higher than 7% of all known CVEs

Summary

In the Linux kernel, a race condition exists in pinmux where two processes concurrently call pinctrl_select_state() for the same GPIO. Process B may read desc->mux_usecount updated by process A before desc->mux_owner is set, leading to a NULL pointer dereference and kernel crash.

Risk Assessment

This can cause a kernel panic or system hang, resulting in service unavailability and potential data loss. The risk is elevated in multi-process environments.

Recommendation

Update the Linux kernel to a version containing the fix (e.g., latest stable release). Monitor systems for unexpected reboots and NULL pointer errors.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: pinmux: Use sequential access to access desc->pinmux data When two client of the same gpio call pinctrl_select_state() for the same functionality, we are seeing NULL pointer issue while accessing desc->mux_owner. Let's say two processes A, B executing in pin_request() for the same pin and process A updates the desc->mux_usecount but not yet updated the desc->mux_owner while process B see the desc->mux_usecount which got updated by A path and further executes strcmp and while accessing desc->mux_owner it crashes with NULL pointer. Serialize the access to mux related setting with a mutex lock. cpu0 (process A) cpu1(process B) pinctrl_select_state() { pinctrl_select_state() { pin_request() { pin_request() { ... .... } else { desc->mux_usecount++; desc->mux_usecount && strcmp(desc->mux_owner, owner)) { if (desc->mux_usecount > 1) return 0; desc->mux_owner = owner; } }

Vulnerability data from NVD (NIST) · CISA KEV · EPSS