CVE-2026-89541 in Linuxinformación

Resumen

por VulDB • 2026-09-12

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

SUNRPC: endurecer las comprobaciones de longitud en gss_unwrap_resp_priv

gss_unwrap_resp_priv() valida la longitud opaca RPCSEC_GSS con:

offset = (u8 *)(p) - (u8 *)head->iov_base; if (offset + opaque_len > rcv_buf->len) goto unwrap_failed; maj_stat = gss_unwrap(ctx->gc_gss_ctx, offset, offset + opaque_len, rcv_buf);

Ambos operandos son u32 y la suma se calcula en u32. Una respuesta con un opaque_len cercano a 0xffffffff provoca que offset + opaque_len desborde (haga wrap) hacia un valor pequeño inferior a rcv_buf->len, por lo que la comprobación de límites pasa correctamente y gss_unwrap() se invoca con end < begin. La comprobación también carece de un límite inferior, por lo que cualquier opaque_len en el rango [0, GSS_KRB5_TOK_HDR_LEN) es aceptado y reenviado a gss_krb5_unwrap_v2(), cuya cabecera previa al descifrado lee en ptr+4 y ptr+6, superando posteriormente los límites del token.

Un servidor NFS krb5p que devuelve una respuesta RPCSEC_GSS manipulada puede provocar lecturas fuera de los límites (out-of-bounds reads) en gss_krb5_unwrap_v2() y en el bucle rotate_left() que le sigue.

La solución consiste en reemplazar la única comprobación combinada por tres protecciones (guards) seguras para aritmética u32, que además imponen la longitud mínima del token exterior según RFC 4121:

if (offset > rcv_buf->len) goto unwrap_failed; if (opaque_len > rcv_buf->len - offset) goto unwrap_failed; if (opaque_len < GSS_KRB5_TOK_HDR_LEN) goto unwrap_failed;

La primera protección hace que la resta en la segunda sea incondicionalmente segura; offset se deriva de una xdr_inline_decode() exitosa en el kvec del encabezado, por lo que, en la práctica, ya cumple con los límites. El límite inferior refleja la comprobación añadida en el lado del servidor mediante el commit 5b757c2e57a5 ("SUNRPC: svcauth_gss: enforce krb5 token minimum length").

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-12

Moderación

aceptado

Artículo

VDB-402644

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!