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

Vulnerabilidad de escritura fuera de límites en Linux kernel

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

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nfsd: dimensionar el espacio sockaddr del servidor de fh_verify según xpt_locallen Los tracepoints nfsd_fh_verify y nfsd_fh_verify_err declaran el espacio sockaddr del servidor con el tamaño de xpt_remotelen, pero lo llenan desde xpt_local usando xpt_locallen: TP_STRUCT__entry( ... __sockaddr(server, rqstp->rq_xprt->xpt_remotelen) ... ) TP_fast_assign( ... __assign_sockaddr(server, &rqstp->rq_xprt->xpt_local, rqstp->rq_xprt->xpt_locallen); ... ) Cuando xpt_locallen supera a xpt_remotelen, el memcpy de __assign_sockaddr escribe más allá del espacio reservado en el búfer circular. En la dirección inversa (xpt_locallen < xpt_remotelen), el espacio queda sobredimensionado y la cola no escrita filtra contenido previo del búfer circular a los consumidores de trazas. El caso de escritura más allá del final es alcanzable en NFS/UDP. svc_xprt_set_remote() solo se llama desde svc_tcp_accept() (net/sunrpc/svcsock.c) y desde la ruta de conexión RDMA; svc_create_socket() para UDP solo llama a svc_xprt_set_local(), por lo que xpt_remotelen permanece en 0 durante toda la vida del xprt. Cada traza de fh_verify para una solicitud NFSv2/v3 sobre UDP copia entonces 16 o 28 bytes desde xpt_local a un espacio de cero bytes. Los demás tracepoints de NFSD que registran la dirección del servidor (NFSD_TRACE_PROC_CALL_FIELDS, NFSD_TRACE_PROC_RES_FIELDS, SVC_RQST_ENDPOINT_FIELDS) ya dimensionan el espacio del servidor según xpt_locallen; nfsd_fh_verify y nfsd_fh_verify_err eran las únicas excepciones. Se corrige dimensionando el espacio del servidor con xpt_locallen para que el espacio declarado coincida con la longitud de la copia. El espacio del cliente y su asignación ya coinciden en xpt_remotelen y no se modifican.

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: dcbebc86850324fbe0a993ce352f0539cd98038a y anteriores a 4c7569ad68fc8b86ca40c7e56ef21460c0344955 · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 50d9d581d2af80799125ee62617d37e9b6b476a7 · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 1c6a4d6c20fd42552ffc2c3dfaed2139c9477ee5 · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 95d064f9828a20ccca5ae90a17be3e2076f25272 · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 7ff8d6363cffff45654ea85e319f7c0c54226012 · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 719a10e3f5f868c3c4ac3cf3648c5775d12034bd · 051382885552e12541cc0ebf82092be374a9ed2a y anteriores a 71d068490098b1d23c63b2345e40675d3a1ca763 · 62980365d6e894234b29f44fb2bfad4f7f8bb824 · 5.15.154 y anteriores a 5.15.224
  • Linux Afectadas: 6.0 No afectadas: 5.15.224 · 6.1.191 · 6.6.160 · 6.12.109 · 6.18.50 · 7.2.4

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: size fh_verify server sockaddr slot by xpt_locallen

In the Linux kernel, the following vulnerability has been resolved: nfsd: size fh_verify server sockaddr slot by xpt_locallen The nfsd_fh_verify and nfsd_fh_verify_err tracepoints declare the server sockaddr slot sized by xpt_remotelen but fill it from xpt_local using xpt_locallen: TP_STRUCT__entry( ... __sockaddr(server, rqstp->rq_xprt->xpt_remotelen) ... ) TP_fast_assign( ... __assign_sockaddr(server, &rqstp->rq_xprt->xpt_local, rqstp->rq_xprt->xpt_locallen); ... ) When xpt_locallen exceeds xpt_remotelen, __assign_sockaddr's memcpy writes past the reserved ring-buffer slot. In the reverse direction (xpt_locallen < xpt_remotelen) the slot is oversized and the unwritten tail leaks prior ring-buffer contents to trace consumers. The write-past-end case is reachable on NFS/UDP. svc_xprt_set_remote() is only called from svc_tcp_accept() (net/sunrpc/svcsock.c) and from the RDMA connect path; svc_create_socket() for UDP calls only svc_xprt_set_local(), so xpt_remotelen stays 0 for the xprt's lifetime. Every fh_verify trace for an NFSv2/v3-over-UDP request then copies 16 or 28 bytes from xpt_local into a zero-byte slot. The other NFSD tracepoints that record the server address (NFSD_TRACE_PROC_CALL_FIELDS, NFSD_TRACE_PROC_RES_FIELDS, SVC_RQST_ENDPOINT_FIELDS) already size the server slot by xpt_locallen; nfsd_fh_verify and nfsd_fh_verify_err were the only exceptions. Fix by sizing the server slot with xpt_locallen so the declared slot matches the copy length. The client slot and its assignment already agree on xpt_remotelen and are left untouched.

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