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

Vulnerabilidad de uso después de liberar memoria (use-after-free) 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: prevenir el uso después de liberar memoria (use-after-free) del cliente durante la revocación de delegaciones Un stateid de delegación mantiene solo un puntero simple a su nfs4_client propietario y no lo mantiene vivo. El cliente sobrevive a sus stateids solo porque __destroy_client() vacía cl_delegations y cl_revoked antes de que se ejecute free_client(). nfs4_laundromat() rompe esa invariante: quita una delegación expirada de cl_delegations, libera deleg_lock y luego revoke_delegation() la vuelve a vincular a cl_revoked bajo cl_lock. En ese intervalo la delegación no está en ninguna de las listas, por lo que client_has_state() puede informar que no queda estado. Todas las rutas de desmontaje exigen primero que cl_rpc_users sea cero, pero el laundromat no mantiene esa referencia. Por lo tanto, un cliente cuya delegación recuperada acaba de expirar puede llegar a free_client() mientras revoke_delegation() todavía está por desreferenciar cl_lock, lo que constituye un uso después de liberar memoria. Se fija el cliente con cl_rpc_users durante la revocación para que el desmontaje se bloquee hasta que esta finalice, y luego se recupera la delegación desde cl_revoked. Un cliente que ya está expirando recupera las suyas, por lo que se omite y la delegación se deja en del_recall_lru.

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: 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 2f9a200c0ea5b214609b8cea2b6666458bcb54cd · 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 94f0c73797c30a35812ffb32d11b8737d245c405 · 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 0dd276b1324a5e08e83c6f675919946c9f0d61c9 · 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 3c0a53ee0b442348d8d2286d6960d3f07bb3a3d3 · 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 2a9d637c2a8fd8ac29ad9b29f28d122ef75c1a56 · 3bd64a5ba1719c2bb6cba4493dfd3e23a7653e54 y anteriores a 4683ca76b3b7e5808338491c6eb3c20e6b4894d5
  • Linux Afectadas: 3.10 No afectadas: 6.1.191 · 6.6.160 · 6.12.111 · 6.18.51 · 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: Prevent client use-after-free during delegation revoke

In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent client use-after-free during delegation revoke A delegation stateid holds only a bare pointer to its owning nfs4_client and does not keep it alive. The client survives its stateids only because __destroy_client() drains cl_delegations and cl_revoked before free_client() runs. nfs4_laundromat() breaks that invariant: it unhashes an expired delegation from cl_delegations, drops deleg_lock, then revoke_delegation() relinks it onto cl_revoked under cl_lock. In that window the delegation is on neither list, so client_has_state() can report no remaining state. Every teardown path first requires cl_rpc_users to be zero, but the laundromat holds no such reference. A client whose recalled delegation has just timed out can therefore reach free_client() while revoke_delegation() is still about to dereference cl_lock, a use-after-free. Pin the client with cl_rpc_users across the revoke so teardown blocks until it completes, then reap the delegation from cl_revoked. A client already expiring reaps its own, so skip it and leave the delegation on del_recall_lru.

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