CVE-2026-92525 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
RDMA/rxe: Validar num_sge/cur_sge antes de indexar wqe->dma.sge[]
Para un QP (Queue Pair) de usuario, qp->sq.queue es un anillo que la aplicación escribe directamente; por lo tanto, rxe_post_send() toma la rama is_user y solo programa send_task sin validar el WQE. rxe_requester() lo consume in situ mediante req_next_wqe() e invoca a copy_data(), la cual indexa &wqe->dma.sge[cur_sge] con num_sge/cur_sge controlados por el atacante. Solo la ruta del kernel limita num_sge (validate_send_wr()); el WQE de usuario nunca se verifica, por lo que un usuario local no privilegiado puede publicar un WQE con un cur_sge fuera de rango o un num_sge excesivo y forzar una lectura fuera de límites (OOB) del array sge por-WQE en copy_data() (lectura OOB mediante vmalloc, DoS local).
Se limita num_sge a qp->sq.max_sge en rxe_requester() antes de su uso, de la misma manera que get_srq_wqe() ya protege las entradas SRQ, y se limita cur_sge solo cuando el WQE lleva carga útil (dma.resid): copy_data() devuelve anticipadamente una copia de longitud cero antes de tocar dma->sge[], por lo que un WQE con carga nula —el único tipo que puede publicar un QP con max_sge == 0— permanece válido.
Reproducido bajo KASAN; la lectura fuera de límites mediante vmalloc en copy_data() ha desaparecido.
If you want to get best quality of vulnerability data, you may have to visit VulDB.