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

Vulnerabilidad de lectura y escritura fuera de límites en Linux kernel (smb: client: fix OOB read/write from unvalidated DataOffset in coalesce_t2())

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

Descripción

En el Linux kernel se ha resuelto la siguiente vulnerabilidad: smb: client: fix OOB read/write from unvalidated DataOffset in coalesce_t2() coalesce_t2() calcula punteros a datos directamente a partir de campos DataOffset suministrados por el servidor, sin validarlos contra los límites del búfer: data_area_of_tgt = (char *)&pSMBt->hdr.Protocol + get_unaligned_le16(&pSMBt->t2_rsp.DataOffset); data_area_of_src = (char *)&pSMBs->hdr.Protocol + get_unaligned_le16(&pSMBs->t2_rsp.DataOffset); data_area_of_tgt += total_in_tgt; ... memcpy(data_area_of_tgt, data_area_of_src, total_in_src); Un DataOffset pequeño puede llevar un puntero por debajo del área de bytes real, sobrescribiendo campos del encabezado; uno grande puede llevarlo más allá del final del búfer, provocando lecturas (origen) o escrituras (destino) fuera de límites en el heap. La protección contra desbordamiento de BCC no lo impide: BCC refleja cuántos datos hay, mientras que DataOffset controla en qué punto del búfer comienzan. El comentario "validate target area", presente desde que la función se escribió en 2005, era un marcador que nunca se implementó. Se agregan comprobaciones de límite inferior y superior para ambos punteros a datos antes del memcpy y antes de modificar cualquier campo del encabezado de destino.

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: e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a f7baf60435129e3a5f3500a38e3cb4c3860deed7 · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 9f3a7440731a34c89ad04fef6616f185acb28401 · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 531ac35abd74fb5b4aec5e19543e832613a1789d · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 6eb70b78e48b0031bd1a05fe1b58959a48e87739 · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 36d01415d881d5326a0dd3384f781cd7e69aff2d · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 672cf86aa6aa0fb4012ce4c3b3498df42ad67a4e · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 033bc80019f07d158630df4e69b19a49010f54f1 · e4eb295d38b57f4d4b956942a48887eb252d97c6 y anteriores a 6343c1da561962688f203362d80d6a3bfa39fa1b
  • Linux Afectadas: 2.6.12 No afectadas: 5.10.273 · 5.15.224 · 6.1.191 · 6.6.160 · 6.12.113 · 6.18.51

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)

smb: client: fix OOB read/write from unvalidated DataOffset in coalesce_t2()

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix OOB read/write from unvalidated DataOffset in coalesce_t2() coalesce_t2() computes data pointers directly from server-supplied DataOffset fields with no validation against buffer bounds: data_area_of_tgt = (char *)&pSMBt->hdr.Protocol + get_unaligned_le16(&pSMBt->t2_rsp.DataOffset); data_area_of_src = (char *)&pSMBs->hdr.Protocol + get_unaligned_le16(&pSMBs->t2_rsp.DataOffset); data_area_of_tgt += total_in_tgt; ... memcpy(data_area_of_tgt, data_area_of_src, total_in_src); A small DataOffset can push a pointer below the actual byte area, overwriting header fields; a large one can push it past the buffer end, causing out-of-bounds heap reads (source) or writes (target). The BCC overflow guard does not prevent this: BCC reflects how much data is present, while DataOffset controls where in the buffer it starts. The "validate target area" comment present since the function was first written in 2005 was a placeholder that was never implemented. Add lower- and upper-bound checks for both data pointers before the memcpy, and before any target header fields are modified.

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