CVE-2026-89674 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nfsd: corrección del cálculo de longitud XDR en nfsd4_ff_encode_layoutget
El cálculo del tamaño del búfer XDR en nfsd4_ff_encode_layoutget() presenta varios errores que pueden provocar una escritura fuera de los límites (out-of-bounds write) o la filtración de memoria no inicializada del kernel al cliente:
- fh_len no tiene en cuenta el relleno (padding) XDR en los datos del file handle. - Las longitudes de uid y gid utilizan "8 + len", pero xdr_encode_opaque() escribe realmente "4 + xdr_align_size(len)" bytes. - ds_len omite los campos flags y stats_collect_hint (8 bytes), mientras que la constante del encabezado para len lo sobreestima en 8 bytes; estos se cancelan parcialmente, pero dejan un desajuste neto.
El peor caso ocurre con cadenas cortas (por ejemplo, uid=0, gid=0 con un file handle de tamaño impar), donde la función escribe hasta 5 bytes más allá del búfer XDR reservado. Por el contrario, cuando las longitudes de cadena resultan estar alineadas a 4 bytes, la reserva es demasiado grande y se envía al cliente contenido obsoleto del búfer.
Se corrige esto separando explícitamente cada campo codificado en el cálculo de ds_len, utilizando xdr_align_size() para todos los campos opacos de longitud variable y corrigiendo las constantes del encabezado.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.