CVE-2026-46129 es un fallo de corrupción de memoria en el sistema de ficheros Btrfs del kernel Linux. Se publicó en la NVD el 28 de mayo de 2026 con una puntuación CVSS 3.1 de 7.8 (alta) y el vector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. En resumen: hace falta acceso local, pero si se dispara, el impacto sobre confidencialidad, integridad y disponibilidad es alto.
Qué falla exactamente
El problema está en create_space_info(), la función que crea las estructuras de información de espacio de Btrfs durante la inicialización del sistema de ficheros. Esa función llama a btrfs_sysfs_add_space_info_type(), que a su vez usa kobject_init_and_add() para registrar un kobject en sysfs.
Cuando kobject_init_and_add() falla, se produce una doble liberación de la misma estructura space_info. La cadena es la siguiente:
kobject_init_and_add()falla y el código invocakobject_put(&space_info->kobj).- Ese
kobject_put()dispara el callback de release,space_info_release(), que ejecutakfree(space_info). La memoria ya queda liberada. - El control vuelve a
create_space_info(), que ve el error y salta a su etiquetaout_free, donde vuelve a llamar akfree(space_info)sobre el puntero ya liberado.
Dos rutas de limpieza distintas creen ser dueñas del mismo objeto. Una lo devuelve al asignador y la otra lo libera por segunda vez. En el kernel, un doble free de este tipo puede degenerar en corrupción del heap, escenarios de use-after-free, un kernel panic o, en el peor de los casos, ejecución de código arbitrario.
A quién afecta
A cualquier sistema con un kernel Linux que monte o tenga disponible Btrfs. En la práctica esto incluye servidores de almacenamiento, NAS, appliances de copia de seguridad, máquinas virtuales Linux, plataformas de contenedores y entornos de desarrollo donde Btrfs sea el sistema de ficheros. Distribuciones como Fedora y openSUSE lo usan por defecto, así que el alcance no es marginal.
La ventana para disparar el fallo es estrecha: hay que provocar el error de kobject_init_and_add() durante la creación de la space_info, lo que depende del comportamiento del asignador, la configuración del kernel y las mitigaciones activas. Por eso la superficie es local y, a fecha de publicación, no hay exploit público ni explotación activa conocida.
Gravedad real
El 7.8 sitúa este fallo por encima de muchos bugs de Btrfs porque el vector marca impacto alto en las tres dimensiones. Dicho esto, conviene leer el CVSS junto al contexto: requiere privilegios locales (PR:L) y no hay vector remoto. No es un fallo para entrar en pánico, pero sí para parchear sin demora en cualquier host multiusuario o que ejecute cargas de terceros.
Mitigación y parche
La corrección ajusta el contrato de propiedad de la memoria. Para las rutas de error tempranas se mantiene el kfree(space_info) directo, pero una vez que btrfs_sysfs_add_space_info_type() ya ha llamado a kobject_put(), se deja que sea el callback de release del kobject quien gestione la limpieza. Así nadie libera dos veces.
El parche se propagó a varias ramas estables de kernel.org a finales de mayo de 2026. Lo recomendable es actualizar a través del canal de tu distribución o del fabricante del appliance, y verificar el backport en su aviso de seguridad en vez de fiarte solo del número de versión upstream, ya que los distribuidores reescriben la numoración. Tras instalar el kernel parcheado hay que reiniciar para aplicar el cambio. Si no puedes parchear de inmediato, limitar el acceso local de usuarios no confiables reduce la exposición mientras tanto.
Fuente
- Windows Forum — CVE-2026-46129 Btrfs double-free fix: Linux kernel patch needed
- NVD — CVE-2026-46129