Vulnerabilidad en kernel de Linux (CVE-2023-52630)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/04/2024
Última modificación:
30/04/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: blk-iocost: corrige una advertencia de desplazamiento fuera de los límites de UBSAN Cuando se llama a iocg_kick_delay() desde una CPU diferente a la que estableció el retraso, @now puede estar en el pasado de @iocg->delay_at genera la siguiente advertencia: UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23 el exponente de desplazamiento 18446744073709 es demasiado grande para el tipo 'u64' de 64 bits ( también conocido como 'unsigned long long') ... Seguimiento de llamadas: dump_stack_lvl+0x79/0xc0 __ubsan_handle_shift_out_of_bounds+0x2ab/0x300 iocg_kick_delay+0x222/0x230 ioc_rqos_merge+0x1d7/0x2c0 __rq_qos_merge+0x2c/0x80 bio _intento_back_merge+0x83/0x190 blk_attempt_plug_merge+0x101/ 0x150 blk_mq_submit_bio+0x2b1/0x720 submit_bio_noacct_nocheck+0x320/0x3e0 __swap_writepage+0x2ab/0x9d0 El subdesbordamiento en sí no afecta realmente el comportamiento de ninguna manera significativa; sin embargo, la marca de tiempo anterior puede exagerar la cantidad de retraso calculada más adelante en el código, lo que no debería ser un problema material dada la naturaleza del mecanismo de retraso. Si @now está en el pasado, esta CPU está compitiendo con otra CPU que recientemente configuró el retraso y no hay nada que esta CPU pueda contribuir con el retraso. Salgamos temprano de iocg_kick_delay() en tales casos.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1e4d3f8bd880e02932a9ea179f90bfa74fd2e899
- https://git.kernel.org/stable/c/27b216130e64651e76ed583742a1b4e4d08a67c3
- https://git.kernel.org/stable/c/2a427b49d02995ea4a6ff93a1432c40fa4d36821
- https://git.kernel.org/stable/c/9f56f38331171c9a19754004f0664686d67ee48d
- https://git.kernel.org/stable/c/cd33b330cb21675189e747953845f5c3689e4912
- https://git.kernel.org/stable/c/e5dc63f01e027721c29f82069f7e97e2149fa131



