CVE-2025-38632 in LinuxИнформация

Сводка

по VulDB • 24.06.2026

В ядре Linux устранена следующая уязвимость:

pinmux: исправление состояния гонки (race condition), приводящего к значению NULL для поля mux_owner при ненулевом значении mux_usecount

Коммит 5a3e85c3c397 («pinmux: Использование последовательного доступа для обращения к данным desc->pinmux») пытался решить проблему, возникающую в случае, когда два клиента одного и того же GPIO вызывают pinctrl_select_state() для одной и той же функции. Это приводило к обращению по нулевому указателю (NULL pointer issue) при доступе к desc->mux_owner. Однако проблема была исправлена не полностью из-за способа её обработки, и она всё ещё может приводить к тому же самому обращению по нулевому указателю.

Проблема возникает вследствие следующей чередующейся последовательности операций:

cpu0 (процесс A) cpu1 (процесс B)

pin_request() { pin_free() {

mutex_lock() desc->mux_usecount--; // становится 0 .. mutex_unlock()

mutex_lock(desc->mux) desc->mux_usecount++; // становится 1 desc->mux_owner = owner; mutex_unlock(desc->mux)

mutex_lock(desc->mux) desc->mux_owner = NULL; mutex_unlock(desc->mux)

Эта последовательность приводит к состоянию, в котором пин кажется используемым (`mux_usecount == 1`), но не имеет владельца (`mux_owner == NULL`). Это может вызвать обращение по нулевому указателю при следующем вызове pin_request() для того же самого пина.

Обеспечьте атомарное выполнение обновлений mux_usecount и mux_owner под одним и тем же блокирующим мьютексом (lock). Очищайте поле mux_owner только тогда, когда значение mux_usecount достигает нуля и новый владелец не был назначен.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

16.04.2025

Раскрытие

22.08.2025

Модерация

принято

Вход

VDB-321086

EPSS

0.00111

KEV

Нет

Деятельности

Очень низкий

Источники

Want to know what is going to be exploited?

We predict KEV entries!