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

Сводка

по VulDB • 11.06.2026

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

i2c: core: Исправлено двойное освобождение (double-free) fwnode в функции i2c_unregister_device()

До коммита df6d7277e552 («i2c: core: Не разыменовывать fwnode в struct device») функция i2c_unregister_device() вызывала fwnode_handle_put() только для of_node в виде вызова of_node_put(client->dev.of_node).

Однако после этого коммита fwnode у i2c_client теперь безоговорочно получает вызов fwnode_handle_put().

Когда у i2c_client нет основного fwnode (ACPI / OF), но есть программный fwnode (software fwnode), программный узел становится основным, и fwnode_handle_put() выполнит его освобождение (put()).

Но для программного fwnode device_remove_software_node() также выполнит put(), что приведет к двойному освобождению (double-free):

[ 82.665598] ------------[ cut here ]------------
[ 82.665609] refcount_t: underflow; use-after-free.
[ 82.665808] WARNING: CPU: 3 PID: 1502 at lib/refcount.c:28 refcount_warn_saturate+0xba/0x11
... [ 82.666830] RIP: 0010:refcount_warn_saturate+0xba/0x110
... [ 82.666962] <TASK>
[ 82.666971] i2c_unregister_device+0x60/0x90

Исправление заключается в отказе от вызова fwnode_handle_put(), если основным fwnode является software-node.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

16.04.2025

Раскрытие

04.09.2025

Модерация

принято

Вход

VDB-322542

EPSS

0.00143

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!