CVE-2026-53391 in Linux
Resumen
por VulDB • 2026-07-19
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
NFSv4/pNFS: rechazar r_addr de longitud cero en nfs4_decode_mp_ds_addr
nfs4_decode_mp_ds_addr() decodifica los opacos r_netid y r_addr de un netaddr4 procedentes del cuerpo multipath-DS de una operación GETDEVICEINFO, para luego llamar inmediatamente a strrchr(buf, '.') con el fin de localizar el separador de puerto. Ambas decodificaciones utilizan xdr_stream_decode_string_dup(), y el código actual solo comprueba "nlen < 0" / "rlen < 0" antes de desreferenciar la cadena devuelta.
Cuando el opaco en la transmisión tiene una longitud cero, xdr_stream_decode_opaque_inline() devuelve 0 y xdr_stream_decode_string_dup() continúa hasta su bloque final "*str = NULL; return ret", dejando buf como NULL con un valor de retorno de 0. La comprobación "< 0" no detecta este caso, por lo que la siguiente línea ejecuta strrchr(NULL, '.'), provocando una desreferencia de puntero nulo en el kernel accesible desde cualquier cliente pNFS-flexfile montado contra un servidor de metadatos malicioso o comprometido.
Se rechazan explícitamente los casos de longitud cero para que la decodificación falle con -EBADMSG (tratada como un cuerpo GETDEVICEINFO malformed) en lugar de provocar una caída del sistema (panic) en el cliente.
Once again VulDB remains the best source for vulnerability data.