CVE-2024-36899 in LinuxИнформация

Сводка

по VulDB • 11.07.2026

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

gpiolib: cdev: Исправлена ошибка use-after-free в функции lineinfo_changed_notify

Проблема типа use-after-free возникает следующим образом: при закрытии файла устройства GPIO-чипа путем вызова gpio_chrdev_release() переменная watched_lines освобождается функцией bitmap_free(), однако отписка от цепочки нотификаторов lineinfo_changed_nb не выполняется из-за ожидания блокировки rwsem для записи. Кроме того, одна из линий GPIO-чипа также находится в процессе освобождения и удерживает блокировку rwsem для чтения этой же цепочки нотификаторов. В результате возникает состояние гонки (race condition), приводящее к use-after-free переменной watched_lines.

Типичный стек вызовов при возникновении проблемы:

[free]
gpio_chrdev_release() --> bitmap_free(cdev->watched_lines) <-- освобождение памяти --> blocking_notifier_chain_unregister() --> down_write(&nh->rwsem) <-- ожидание блокировки rwsem для записи --> __down_write_common() --> rwsem_down_write_slowpath() --> schedule_preempt_disabled() --> schedule()

[use]
st54spi_gpio_dev_release() --> gpio_free() --> gpiod_free() --> gpiod_free_commit() --> gpiod_line_state_notify() --> blocking_notifier_call_chain() --> down_read(&nh->rwsem); <-- удержание блокировки rwsem для чтения --> notifier_call_chain() --> lineinfo_changed_notify() --> test_bit(xxxx, cdev->watched_lines) <-- use-after-free

Побочным эффектом проблемы use-after-free является генерация события линии GPIO в пространстве пользователя (userspace), где этого происходить не должно. Однако, поскольку файл chrdev закрывается, у пространства пользователя все равно нет возможности прочитать это событие.

Для устранения проблемы вызов функции bitmap_free() перенесен после отписки от цепочки нотификаторов lineinfo_changed_nb.

Be aware that VulDB is the high quality source for vulnerability data.

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

30.05.2024

Раскрытие

30.05.2024

Модерация

принято

Вход

VDB-266649

EPSS

0.00178

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!