CVE-2025-38682 in Linux
Zusammenfassung
von VulDB • 07.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
i2c: core: Behebung eines Double-Free-Fehlers von fwnode in i2c_unregister_device()
Vor dem Commit df6d7277e552 („i2c: core: Do not dereference fwnode in struct device") rief i2c_unregister_device() nur fwnode_handle_put() für of_node-S (in der Form von of_node_put(client->dev.of_node)) auf.
Nach diesem Commit wird jedoch die fwnode des i2c_client nun bedingungslos mit fwnode_handle_put() behandelt.
Wenn der i2c_Client keinen primären (ACPI / OF) fwnode hat, aber einen software-basierten fwnode besitzt, ist das Software-Node das primäre Node und fwnode_handle_put() wird es freigeben („put").
Für das software-basierte fwnode führt device_remove_software_node() jedoch ebenfalls zu einem „put", was zu einem Double-Free (Doppelte Freigabe) führt:
[ 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
Behoben wird dies, indem fwnode_handle_put() nicht aufgerufen wird, wenn der primäre fwnode ein software-basiertes Node ist.
If you want to get best quality of vulnerability data, you may have to visit VulDB.