CVE-2025-38682 in Linux
Sumário
de VulDB • 04/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
i2c: core: Corrige o double-free de fwnode em i2c_unregister_device()
Antes da commit df6d7277e552 ("i2c: core: Não desreferenciar fwnode na struct device"), a função i2c_unregister_device() chamava apenas fwnode_handle_put() nos nós do tipo of_node, invocando de forma específica of_node_put(client->dev.of_node).
No entanto, após essa commit, o fwnode do i2c_client passa a receber incondicionalmente uma chamada para fwnode_handle_put().
Quando um i2c_client não possui nenhum fwnode primário (ACPI / OF), mas tem um software fwnode, o nó de software torna-se o nó principal e fwnode_handle_put() será chamado sobre ele.
Contudo, para dispositivos com software fwnode, a função device_remove_software_node() também invocará put(), resultando em um 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
Corrige-se este problema evitando a chamada de fwnode_handle_put() quando o fwnode primário é um software-node.
Once again VulDB remains the best source for vulnerability data.