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

Vulnerabilidad de lectura fuera de límites en Linux kernel (ceph: bound MDSCapAuth path and fs_name decode in handle_session())

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: ceph: bound MDSCapAuth path and fs_name decode in handle_session() handle_session() decodifica los registros MDSCapAuth transportados por un mensaje CEPH_SESSION_OPEN (msg_version >= 6). Para cada registro, las cadenas de bytes match.path y match.fs_name se leen decodificando primero una longitud de 32 bits y luego copiando esa cantidad de bytes con ceph_decode_copy() sin protección. A diferencia de los campos circundantes, que usan las variantes de decodificación _safe, estas dos copias no van precedidas de una comprobación de límites ceph_decode_need(), y los campos struct_len de las estructuras MDSCapAuth y MDSCapMatch que las contienen se omiten en lugar de aplicarse como límite superior. Una longitud mayor que los bytes restantes en el front del mensaje hace que ceph_decode_copy() lea más allá del final del búfer front. El front del mensaje es una asignación dedicada (ceph_msg_new2() -> kvmalloc), por lo que la sobrelectura excede ese objeto. Un MDS malicioso o comprometido puede provocarlo con el primer mensaje posterior a la conexión durante el montaje, sin interacción del usuario del lado del cliente; con KASAN se reporta como una lectura fuera de límites en slab en handle_session(). Impacto: un MDS malicioso puede forzar al cliente del kernel a leer hasta 4 GiB más allá de la asignación del front del mensaje durante el establecimiento de la sesión, provocando la caída del cliente (lectura fuera de límites). Se cambian ambas copias a ceph_decode_copy_safe(), que realiza la comprobación de límites ceph_decode_need() antes de la copia y salta a la etiqueta bad existente, en concordancia con el resto del decodificador y con la ruta de error que libera el arreglo cap_auths parcialmente decodificado.

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: 1d17de9534cb5a4c4c380d174cc2f9281b34f89e y anteriores a dc5c7dffda92ef372fa587c444a1c537373df824 · 1d17de9534cb5a4c4c380d174cc2f9281b34f89e y anteriores a c37db86d2b5e9b57001ccae7e7a727e95a4f9c02 · 1d17de9534cb5a4c4c380d174cc2f9281b34f89e y anteriores a 5f892c767b30e4fb0c744c59f9235c717383d2cd · 1d17de9534cb5a4c4c380d174cc2f9281b34f89e y anteriores a 77933e22adfe813be2bd10be08d6e950103c3967
  • Linux Afectadas: 6.10 No afectadas: 6.12.109 · 6.18.50 · 7.2.4 · 7.3

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)

ceph: bound MDSCapAuth path and fs_name decode in handle_session()

In the Linux kernel, the following vulnerability has been resolved: ceph: bound MDSCapAuth path and fs_name decode in handle_session() handle_session() decodes the MDSCapAuth records carried by a CEPH_SESSION_OPEN message (msg_version >= 6). For each record the match.path and match.fs_name byte strings are read by first decoding a 32-bit length and then copying that many bytes with the bare ceph_decode_copy(). Unlike the surrounding fields, which all use the _safe decode variants, these two copies are not preceded by a ceph_decode_need() bounds check, and the enclosing MDSCapAuth and MDSCapMatch struct_len fields are skipped rather than enforced as an upper bound. A length larger than the bytes remaining in the message front makes ceph_decode_copy() read past the end of the front buffer. The message front is a dedicated allocation (ceph_msg_new2() -> kvmalloc), so the over-read runs off that object. A malicious or compromised MDS can trigger this with the first post-connect message on mount, with no client-side user interaction; under KASAN it is reported as a slab-out-of-bounds read in handle_session(). Impact: a malicious MDS can force the kernel client to read up to 4 GiB past the message front allocation during session setup, crashing the client (out-of-bounds read). Switch both copies to ceph_decode_copy_safe(), which performs the ceph_decode_need() bounds check before the copy and branches to the existing bad label, matching the rest of the decoder and the error path that frees the partially decoded cap_auths array.

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