Saltar al contenido
CVE-2026-89712 Fuente: CVE.org Publicada · sin explotación confirmada

Vulnerabilidad de uso después de liberar memoria (use-after-free) en Linux kernel

Linux · Linux · Publicada en CVE.org el 11-09-2026 · Última actualización: 09-11-2026

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: NFSD: reiniciar el recorrido de ssc_expire_umount después de liberar nfsd_ssc_lock nfsd4_ssc_expire_umount() recorre nn->nfsd_ssc_mount_list con list_for_each_entry_safe(ni, tmp, ...). Para cada entrada expirada establece nsui_busy = true, libera nfsd_ssc_lock para ejecutar mntput() sobre el vfsmount de origen y luego vuelve a adquirir el bloqueo para ejecutar list_del + kfree sobre la entrada y continuar iterando mediante el puntero tmp guardado por la macro. El indicador nsui_busy protege el ni actual frente a búsquedas concurrentes de nfsd4_ssc_setup_dul() durante la ventana en que se libera el bloqueo, pero no fija tmp. Otro hilo RPC de nfsd que falle en el montaje del servidor de origen y llegue a nfsd4_ssc_cancel_dul() tomará, durante esa misma ventana, nfsd_ssc_lock, ejecutará list_del + kfree sobre su propio elemento ssc_umount y liberará el bloqueo. Si ese elemento es el tmp guardado del recorrido de expiración, la siguiente iteración desreferencia un nfsd4_ssc_umount_item ya liberado. Se reinicia el recorrido desde la cabeza después de la ventana de desbloqueo de mntput(), de modo que ningún puntero siguiente guardado sobreviva a la liberación del bloqueo. La lista está acotada por el número de montajes de origen entre servidores activos (normalmente pequeño) y el trabajo diferido de expiración se ejecuta periódicamente y no por cada operación de E/S, por lo que el reinicio tiene un costo bajo.

Qué hacer

Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.

Versiones afectadas

  • Linux Afectadas: a4bc287943f5695209ff36bdc89f17b48d68fae7 y anteriores a 2b59029b8f24a99b5d844af2da3950d39d36eeea · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a d9e151fea5ed706c1284adacabd869b0be745db2 · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 659ee3da073164e1e6e40dfcbc26eeed85845f93 · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 60680ae7243b22de3d09be990d8e23bcfc4af837 · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 77de363d9a1c8cd35f20482782c612cda085791a · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 4ed8d2317aef21cc2a9e5a55d6b59860b4b151a8 · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 7377fa964b8aaf47cb04e5efcc4c82d15e8c2ce9 · f4e44b393389c77958f7c58bf4415032b4cda15b y anteriores a 036c1b182f4da65363e79ec0ac276edc6b7296e5 · 5.10.220 y anteriores a 5.10.270
  • Linux Afectadas: 5.14 No afectadas: 5.10.270 · 5.15.221 · 6.1.188 · 6.6.157 · 6.12.109 · 6.18.50

Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.

Referencias

Ver el texto original en inglés (CVE.org)

NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock

In the Linux kernel, the following vulnerability has been resolved: NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock nfsd4_ssc_expire_umount() walks nn->nfsd_ssc_mount_list with list_for_each_entry_safe(ni, tmp, ...). For each expired entry it sets nsui_busy = true, drops nfsd_ssc_lock to run mntput() on the source vfsmount, then reacquires the lock to list_del + kfree the entry and continue iterating via the macro's saved tmp pointer. The nsui_busy flag protects the current ni from concurrent nfsd4_ssc_setup_dul() finders during the lock-drop window, but it does not pin tmp. Another nfsd RPC thread that fails its source- server mount and reaches nfsd4_ssc_cancel_dul() will, during that same window, take nfsd_ssc_lock, list_del + kfree its own ssc_umount item, and release the lock. If that item is the saved tmp of the expire walk, the next iteration dereferences a freed nfsd4_ssc_umount_item. Restart the walk from the head after the mntput() unlock window so no saved next pointer survives the lock-drop. The list is bounded by the number of active inter-server source mounts (typically small) and the expire delayed-work runs periodically rather than per-IO, so the restart is cheap.

Recibe el boletín cuando CISA agregue vulnerabilidades nuevas

Te escribimos solo cuando CISA agrega vulnerabilidades nuevas, ya traducidas: cada día que haya, o en un resumen los lunes. Confirmas por correo y te das de baja con un clic.

Frecuencia