Vulnerabilidades

Con el objetivo de informar, advertir y ayudar a los profesionales sobre las ultimas vulnerabilidades de seguridad en sistemas tecnológicos, ponemos a disposición de los usuarios interesados en esta información una base de datos con información en castellano sobre cada una de las ultimas vulnerabilidades documentadas y conocidas.

Este repositorio con más de 75.000 registros esta basado en la información de NVD (https://nvd.nist.gov/) (National Vulnerability Database) – en función de un acuerdo de colaboración – por el cual desde INCIBE realizamos la traducción al castellano de la información incluida. En ocasiones este listado mostrará vulnerabilidades que aún no han sido traducidas debido a que se recogen en el transcurso del tiempo en el que el equipo de INCIBE realiza el proceso de traducción.

Se emplea el estándar de nomenclatura de vulnerabilidades CVE (https://cve.mitre.org/) (Common Vulnerabilities and Exposures), con el fin de facilitar el intercambio de información entre diferentes bases de datos y herramientas. Cada una de las vulnerabilidades recogidas enlaza a diversas fuentes de información así como a parches disponibles o soluciones aportadas por los fabricantes y desarrolladores. Es posible realizar búsquedas avanzadas teniendo la opción de seleccionar diferentes criterios como el tipo de vulnerabilidad, fabricante, tipo de impacto entre otros, con el fin de acortar los resultados.

Mediante suscripción RSS (https://www.incibe.es/feed/vulnerabilities) o Boletines (https://www.incibe.es//incibe/suscripciones) podemos estar informados diariamente de las ultimas vulnerabilidades incorporadas al repositorio.

CVE-2023-52474

Fecha de publicación:
26/02/2024
Idioma:
Español
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: IB/hfi1: Corrección de errores con solicitudes SDMA de usuarios multi-iovec que no pertenecen al extremo PAGE_SIZE. El procesamiento de solicitudes SDMA del usuario hfi1 tiene dos errores que pueden causar daños en los datos de las solicitudes SDMA de los usuarios que tienen múltiples carga útil de iovecs donde un iovec que no sea el iovec de cola no se ejecuta hasta el límite de la página para el búfer señalado por ese iovec.a Estos son los errores específicos: 1. user_sdma_txadd() no usa la estructura user_sdma_iovec->iov.iov_len. Más bien, user_sdma_txadd() sumará PAGE_SIZE bytes desde iovec al paquete, incluso si algunos de esos bytes ya pasaron de iovec->iov.iov_len y, por lo tanto, no están destinados a estar en el paquete. 2. user_sdma_txadd() y user_sdma_send_pkts() no logran avanzar al siguiente iovec en user_sdma_request->iovs cuando el iovec actual no es PAGE_SIZE y no contiene suficientes datos para completar el paquete. El paquete transmitido contendrá datos incorrectos de las páginas de iovec. Esto no ha sido un problema con los paquetes SDMA de hfi1 Verbs o PSM2 porque solo producen iovecs que terminan antes de PAGE_SIZE como iovec final de una solicitud SDMA. La corrección de estos errores expone otros errores con el caché de pin SDMA (struct mmu_rb_handler) que impiden admitir solicitudes SDMA del usuario con múltiples iovecs de carga útil cuyos buffers no terminan en PAGE_SIZE. Entonces este compromiso también soluciona esos problemas. Estos son los errores de mmu_rb_handler que pueden afectar las solicitudes SDMA de usuarios de carga útil multi-iovec que no son de PAGE_SIZE-end: 1. La superposición de rangos de memoria en mmu_rb_handler dará como resultado fijaciones duplicadas. 2. Al extender una entrada mmu_rb_handler existente (struct mmu_rb_node), el código mmu_rb (1) elimina la entrada existente bajo un candado, (2) libera ese candado, fija las nuevas páginas, (3) luego vuelve a adquirir el candado para insertar la entrada extendida mmu_rb_node. Si alguien más entra e inserta una entrada superpuesta entre (2) y (3), insertar en (3) fallará. En este caso, el código de ruta de error desancla _todas_ las páginas del mmu_rb_node original o del nuevo mmu_rb_node que se insertó entre (2) y (3). 3. En hfi1_mmu_rb_remove_unless_exact(), mmu_rb_node->refcount se incrementa fuera de mmu_rb_handler->lock. Como resultado, mmu_rb_node podría ser desalojado por otro subproceso que obtenga mmu_rb_handler->lock y verifique mmu_rb_node->refcount antes de que se incremente mmu_rb_node->refcount. 4. En relación con el punto 2 anterior, la ruta de error de envío de solicitudes SDMA no verifica mmu_rb_node->refcount antes de liberar el objeto mmu_rb_node. Si hay otras solicitudes de SDMA en curso cuyos iovecs tienen punteros a los nodos mmu_rb_nodos ahora liberados, se eliminará la referencia a esos punteros a los nodos mmu_rb ahora liberados cuando se completen esas solicitudes de SDMA.
Severidad: Pendiente de análisis
Última modificación:
26/02/2024

botón arriba