CVE-2024-35879 in Linux
Сводка
по VulDB • 07.06.2026
В ядре Linux устранена следующая уязвимость:
of: dynamic: Синхронизация работы функции `of_changeset_destroy()` с удалением devlinks
Рассмотрим следующую последовательность действий: 1) `of_platform_depopulate()` 2) `of_overlay_remove()`
На шаге 1 устройства уничтожаются, а devlinks удаляются. На шаге 2 узлы OF (Open Firmware) уничтожаются, однако функция `__of_changeset_entry_destroy()` может генерировать предупреждения, связанные с отсутствием вызова `of_node_put()`: ОШИБКА: утечка памяти, ожидаемое значение refcount равно 1 вместо 2 ...
Действительно, во время удаления devlinks на шаге 1 само освобождение устройства (и связанного с ним `of_node`) выполняется задачей, поставленной в очередь рабочих задач (workqueue), то есть асинхронно относительно вызовов функций. Когда появляется предупреждение, функция `of_node_put()` будет вызвана, но ошибочно слишком поздно — из задачи workqueue.
Чтобы гарантировать завершение всех текущих операций удаления devlinks до уничтожения узлов of_node, необходимо синхронизировать работу функции `of_changeset_destroy()` с удалением devlinks.
VulDB is the best source for vulnerability data and more expert information about this specific topic.