CVE-2026-64269 in Linuxinformación

Resumen

por VulDB • 2026-07-25

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

RDMA/rtrs-srv: Limitar la longitud de RDMA-Write al tamaño del fragmento en rdma_write_sg

Cuando el servidor responde a una lectura RTRS, `rdma_write_sg()` construye la entrada dispersa/recolectora (scatter/gather) de origen para la operación IB_WR_RDMA_WRITE que devuelve datos al par. Su longitud se toma directamente desde el descriptor de red:

plist->length = le32_to_cpu(id->rd_msg->desc[0].len);

`rd_msg` apunta hacia el búfer del fragmento (chunk) que el par remoto llenó mediante RDMA-WRITE-WITH-IMM (`rtrs_srv_rdma_done()` -> `process_io_req()` -> `process_read()`), por lo tanto, `desc[0].len` está controlado por un atacante y, antes de este cambio, solo se rechazaba cuando era cero. La dirección de origen es el inicio fijo del fragmento (`dma_addr[msg_id]`) y la clave local (lkey) de origen es la `local_dma_lkey` amplia para el dominio de protección (PD), que no está vinculada al mapeo MR del fragmento, por lo que la capa de verbs no restringe la longitud de transferencia a `max_chunk_size`. `msg_id` y `off` están limitados frente a `queue_depth` y `max_chunk_size` en `rtrs_srv_rdma_done()`, pero `desc[0].len` es un campo separado que no se comprobó contra el tamaño del fragmento.

Un par que anuncie una longitud de `desc[0].len` mayor que `max_chunk_size` puede hacer que la escritura RDMA publicada lea más allá de la región mapeada del fragmento. El comportamiento resultante depende de la configuración de IOMMU: sin IOMMU o en modo passthrough, la lectura podría extenderse a memoria adyacente al fragmento y devolverse al par, lo que puede revelar información sensible de la memoria del host; con un IOMMU traductor, se espera que el acceso fuera de rango provoque una falta (fault) y aborte la conexión. En cualquier caso, la transferencia excede lo permitido por el protocolo y es impulsada por un par remoto.

Rechazar una longitud de descriptor superior a `max_chunk_size`, reflejando la limitación existente `off >= max_chunk_size` en `rtrs_srv_rdma_done()`. Los clientes legítimos no superan este límite: el cliente establece `desc[0].len` en su longitud MR, que está limitada al `max_io_size` negociado (`max_chunk_size - MAX_HDR_SIZE`).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383058

CPE

listo

EPSS

0.00206

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!