Saltar al contenido
CVE-2026-89660 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 administrativa de estado Un stateid mantiene solo un puntero simple a su nfs4_client; una referencia al stateid no lo fija. El cliente sobrevive solo porque __destroy_client() vacía sus stateids antes de que se ejecute free_client(). nfsd4_revoke_states() libera nn->client_lock durante revoke_one_stid(), que desreferencia el cliente para revocar un stateid y leer clp->cl_minorversion. Un desmontaje que compita mientras el bloqueo está liberado puede liberar primero el cliente. Fijar cl_rpc_users bajo client_lock bloquea el desmontaje de DESTROY_CLIENTID y EXCHANGE_ID, que se rechaza mientras cl_rpc_users no sea cero. force_expire_client() lo ignora: una vez superada su espera a que cl_rpc_users llegue a cero, una fijación posterior pasa inadvertida. Bajo client_lock, se omite un cliente cuyo cl_time ya es cero (force_expire_client() lo borra en ese punto antes de esperar); de lo contrario, se fija cl_rpc_users antes de liberar el bloqueo. Así, el recorrido detecta la expiración y la omite, o fija a tiempo para que esa espera cubra la revocación.

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: 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc y anteriores a e1ba4d3c5bfdca3f013b8cbc829ae2f7975d8608 · 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc y anteriores a 549bd9868e9d77b07ea94870940d64342829c6ad · 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc y anteriores a bf1f948691523282cc4905bc6cd325e0c0b49e6a · 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc y anteriores a e270e5a0778e5bff852c8862ce9576ce70359393
  • Linux Afectadas: 6.9 No afectadas: 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 admin state revocation

In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent client use-after-free during admin state revocation A stateid holds only a bare pointer to its nfs4_client; a stateid reference does not pin it. The client survives only because __destroy_client() drains its stateids before free_client() runs. nfsd4_revoke_states() drops nn->client_lock across revoke_one_stid(), which dereferences the client to revoke a stateid and read clp->cl_minorversion. A teardown racing the dropped lock can free the client first. Pinning cl_rpc_users under client_lock blocks the DESTROY_CLIENTID and EXCHANGE_ID teardown, which refuses while cl_rpc_users is non-zero. force_expire_client() ignores it: once its wait for cl_rpc_users to reach zero has passed, a later pin goes unnoticed. Under client_lock, skip a client whose cl_time is already zero -- force_expire_client() clears it there before waiting -- otherwise pin cl_rpc_users before dropping the lock. The walk then either sees the expiry and skips, or pins in time for that wait to cover the revoke.

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