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

Vulnerabilidad de condición de carrera en Linux kernel (nfsd)

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

Descripción

En el Linux kernel se resolvió la siguiente vulnerabilidad: nfsd: corrección de una condición de carrera de doble referencia en el worker de fence de layout El núcleo de workqueue borra WORK_STRUCT_PENDING antes de invocar la función de callback, por lo que delayed_work_pending() en lm_breaker_timedout() puede devolver false mientras el worker de fence ya se está ejecutando. Esto permite que el breaker tome una referencia sc_count duplicada y programe un nuevo worker que se fusiona con el que está en curso. La referencia adicional nunca se libera, lo que provoca una fuga del stateid de layout. Se reemplaza la verificación delayed_work_pending(), susceptible a condiciones de carrera, por un booleano ls_fence_inflight que se establece de forma atómica junto con refcount_inc_not_zero() bajo ls_lock, y que se borra bajo ls_lock antes del nfs4_put_stid() final en la ruta de liberación; la ruta de reintento lo conserva intencionalmente. Se elimina la llamada de autorreprogramación mod_delayed_work() al inicio del worker.

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: f52792f484ba2316853736856dde19b7e7458861 y anteriores a a278d361e0e8f242211891193d56483a7a9f47a8 · f52792f484ba2316853736856dde19b7e7458861 y anteriores a 8580571227451384399b3fa53fcde19848c48e5a
  • Linux Afectadas: 7.1 No afectadas: 7.2.4 · 7.3

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: fix layout fence worker double-reference race

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix layout fence worker double-reference race The workqueue core clears WORK_STRUCT_PENDING before the callback is invoked, so delayed_work_pending() in lm_breaker_timedout() can return false while the fence worker is already running. This lets the breaker take a duplicate sc_count reference and schedule a new worker that coalesces with the in-progress one. The extra reference is never put, leaking the layout stateid. Replace the racy delayed_work_pending() check with an ls_fence_inflight boolean set atomically with refcount_inc_not_zero() under ls_lock, and cleared under ls_lock before the final nfs4_put_stid() on the dispose path; the retry path intentionally retains it. Remove the self-rearm mod_delayed_work() at the top of the worker.

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