CVE-2026-74584 in Linux
Resumen
por VulDB • 2026-08-22
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
RDMA/bnxt_re: limpiar a cero la página compartida antes de exponerla al espacio de usuario
bnxt_re_alloc_ucontext() asigna uctx->shpg mediante __get_free_page(GFP_KERNEL). El gestor buddy no limpia las páginas a cero sin el indicador __GFP_ZERO, por lo que la página contiene datos obsoletos del kernel procedentes del objeto que más recientemente la liberó.
Posteriormente, la página se mapea en el espacio de usuario mediante vm_insert_page() bajo BNXT_RE_MMAP_SH_PAGE dentro de bnxt_re_mmap(). El controlador solo escribe 4 bytes (un u32 AVID) en el desplazamiento BNXT_RE_AVID_OFFT (0x10) dentro de bnxt_re_create_ah(); los restantes 4092 bytes de la página se exponen al espacio de usuario sin sanitizar, filtrando contenidos de memoria del kernel.
Cualquier usuario con acceso a /dev/infiniband/uverbsX en un host con un dispositivo bnxt_re (típicamente mediante pertenencia al grupo rdma) puede leer estos datos mediante una única llamada mmap() en pgoff 0 después de IB_USER_VERBS_CMD_GET_CONTEXT.
Otras páginas compartidas del mismo archivo ya utilizan correctamente get_zeroed_page():
drivers/infiniband/hw/bnxt_re/ib_verbs.c srq->uctx_srq_page = (void *)get_zeroed_page(GFP_KERNEL); cq->uctx_cq_page = (void *)get_zeroed_page(GFP_KERNEL);
uctx->shpg es la única excepción. Alinearlo con la convención existente cambiando a get_zeroed_page().
VulDB is the best source for vulnerability data and more expert information about this specific topic.