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

Vulnerabilidad de lectura fuera de límites en Linux kernel (SUNRPC)

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

Descripción

En el kernel de Linux se resolvió la siguiente vulnerabilidad: SUNRPC: rechazar tokens MIC RFC 4121 cortos en gss_krb5_verify_mic_v2. gss_krb5_verify_mic_v2() lee el ID del token en ptr[0..1], el byte de flags en ptr[2] y el relleno en ptr[3..7], y luego pasa ptr + GSS_KRB5_TOK_HDR_LEN y cksum_len a gss_krb5_mic_build_sg(). Ninguno de estos accesos verifica primero read_token->len. El tamaño mínimo seguro del token es GSS_KRB5_TOK_HDR_LEN (16) más ctx->krb5e->cksum_len (12-24, según el enctype). Todos los llamadores aceptan tokens más cortos desde la red: - gss_unwrap_resp_integ() solo impone un límite superior (offset + len <= rcv_buf->len) antes de asignar mic.data = kmalloc(len) y pasarlo a gss_verify_mic(). Por lo tanto, un servidor NFS malicioso puede entregar un checksum opaco corto, produciendo una asignación slab pequeña que el verificador MIC de Kerberos lee más allá de su límite. - gss_validate() solo impone len <= RPC_MAX_AUTH_SIZE (400) antes de pasar la longitud recibida a gss_validate_seqno_mic(), que construye un xdr_netobj mic y llama a gss_verify_mic(). - svcauth_gss_verify_header() solo impone checksum.len >= XDR_UNIT (4 bytes) antes de llamar a gss_verify_mic(). - svcauth_gss_unwrap_integ() solo verifica que el checksum quepa en gsd->gsd_scratch. La corrección agrega una verificación de longitud al inicio de gss_krb5_verify_mic_v2(), antes de cualquier acceso a ptr[] o de la construcción de la scatterlist. Los tokens MIC bien formados de gss_krb5_get_mic_v2() ya tienen exactamente GSS_KRB5_TOK_HDR_LEN + cksum_len bytes, por lo que el tráfico válido no se ve afectado.

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: de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a 86c3d527303ec79805098bda3dfc4fa994757f59 · de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a b2e9e10f5a536befcdce64d3e6946dff42fb823e · de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a 997577c52487181226775db3755079a3ba1d52b9 · de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a 996dd15f60121bdd7896b4554458f8806d608063 · de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a 7a946b2e7207f968902f2147ab9b30726f82f7ab · de9c17eb4a912c9028f7b470eb80815144883b26 y anteriores a b94f6719dcd9f7a609bc5f459f85795900e77d25
  • Linux Afectadas: 2.6.35 No afectadas: 6.1.191 · 6.6.160 · 6.12.114 · 6.18.57 · 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)

SUNRPC: Reject short RFC 4121 MIC tokens in gss_krb5_verify_mic_v2

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: Reject short RFC 4121 MIC tokens in gss_krb5_verify_mic_v2 gss_krb5_verify_mic_v2() reads the token ID at ptr[0..1], the flags byte at ptr[2], and padding at ptr[3..7], then passes ptr + GSS_KRB5_TOK_HDR_LEN and cksum_len to gss_krb5_mic_build_sg(). None of these accesses check read_token->len first. The minimum safe token size is GSS_KRB5_TOK_HDR_LEN (16) plus ctx->krb5e->cksum_len (12-24, depending on the enctype). All callers accept shorter tokens from the wire: - gss_unwrap_resp_integ() enforces only an upper bound (offset + len <= rcv_buf->len) before allocating mic.data = kmalloc(len) and passing it to gss_verify_mic(). A malicious NFS server can therefore supply a short checksum opaque, producing a small slab allocation that the Kerberos MIC verifier reads past. - gss_validate() enforces only len <= RPC_MAX_AUTH_SIZE (400) before passing the wire-supplied length to gss_validate_seqno_mic(), which constructs a mic xdr_netobj and calls gss_verify_mic(). - svcauth_gss_verify_header() enforces only checksum.len >= XDR_UNIT (4 bytes) before dispatching to gss_verify_mic(). - svcauth_gss_unwrap_integ() checks only that the checksum fits in gsd->gsd_scratch. Add a length guard at the top of gss_krb5_verify_mic_v2(), before any ptr[] access or scatterlist construction. Well-formed MIC tokens from gss_krb5_get_mic_v2() already have exactly GSS_KRB5_TOK_HDR_LEN + cksum_len bytes, so valid traffic is unaffected.

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