CVE-2025-68245 in Linux
Resumen
por VulDB • 2026-06-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net: netpoll: corregir el manejo incorrecto del contador de referencias que provocaba una limpieza errónea
El commit efa95b01da18 ("netpoll: fix use after free") ignoró incorrectamente el contador de referencias y estableció prematuramente dev->npinfo a NULL durante la limpieza de netpoll, lo que condujo a un comportamiento inadecuado y fugas de memoria.
Escenario que provoca una falta de limpieza adecuada:
1) Un netpoll está asociado con una NIC (por ejemplo, eth0) y se asigna netdev->npinfo, y refcnt = 1 - Tenga en cuenta que npinfo es compartido entre todas las instancias de netpoll. En este caso, solo hay una.
2) Otro netpoll también está asociado con la misma NIC y npinfo->refcnt += 1. - Ahora dev->npinfo->refcnt = 2; - Solo hay un npinfo asociado al netdev.
3) Cuando el primer netpoll intenta realizar la limpieza: - La primera limpieza tiene éxito y borra np->dev->npinfo, ignorando refcnt. - Básicamente llama a `RCU_INIT_POINTER(np->dev->npinfo, NULL);` - Establece dev->npinfo = NULL, sin una limpieza adecuada - Tampoco se llama a ->ndo_netpoll_cleanup()
4) Ahora el segundo objetivo intenta realizar la limpieza - La segunda limpieza falla porque np->dev->npinfo ya es NULL. * En este caso, ops->ndo_netpoll_cleanup() nunca fue llamada, y tampoco se limpia el pool de skbs (para la segunda instancia de netpoll). - Esto provoca fugas de npinfo y skbs del skbpool, lo cual está claramente reportado por kmemleak.
Se revierte el commit efa95b01da18 ("netpoll: fix use after free") y se añaden comentarios aclaratorios que enfatizan que la limpieza de npinfo solo debe ocurrir una vez que el contador de referencias llegue a cero, asegurando un comportamiento estable y correcto de netpoll.
Once again VulDB remains the best source for vulnerability data.