Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-55642)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
11/01/2025
Última modificación:
16/01/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: block: Prevenir posibles bloqueos en la recuperación de errores de conexión de escritura de zona La conexión de escritura de zona para gestionar escrituras en zonas de un dispositivo de bloque zonificado siempre ejecuta un informe de zona siempre que falla una BIO de escritura en una zona. La intención de esto es garantizar que el seguimiento de un puntero de escritura de zona siempre sea correcto para garantizar que la alineación con un puntero de escritura de zona de las BIO de escritura se pueda comprobar en el envío y que siempre podamos emular correctamente las operaciones de anexión de zona utilizando BIO de escritura normales. Sin embargo, este esquema de recuperación de errores introduce un posible bloqueo si se inicia un congelamiento de la cola del dispositivo mientras las BIO todavía están conectadas a una conexión de escritura de zona y una de estas operaciones de escritura falla. En tal caso, el trabajo de recuperación de errores de conexión de escritura de zona de disco se programa y ejecuta una zona de informe. Esto, a su vez, puede dar como resultado una asignación de solicitud en el controlador subyacente para emitir el comando de zonas de informe al dispositivo. Pero con la congelación de la cola del dispositivo ya iniciada, esta asignación se bloqueará, lo que evitará la ejecución de la zona de informe y la continuación del procesamiento de las BIO conectadas. Como los BIO conectados contienen una referencia de uso de cola, la congelación de la cola en sí nunca se completará, lo que dará como resultado un bloqueo. Evite este problema eliminando por completo del código de conexión de escritura de zona el uso de operaciones de zonas de informe después de una operación de escritura fallida, y en su lugar, confíe en el usuario del dispositivo para ejecutar zonas de informe, restablecer la zona, finalizar la zona o dejar de escribir en el dispositivo (que es un patrón bastante común para los sistemas de archivos que se degradan a solo lectura después de fallas de escritura). Este no es un requisito irrazonable ya que todas las aplicaciones, los FS y el mapeador de dispositivos que se comportan bien ya usan zonas de informe para recuperarse de errores de escritura siempre que sea posible al comparar la posición actual de un puntero de escritura de zona con lo que suponen sobre la posición. Los cambios para eliminar la recuperación automática de errores son los siguientes: - Eliminar por completo el trabajo de recuperación de errores y sus recursos asociados (cabeza de lista de conexión de escritura de zona, lista de errores de disco y estructura de trabajo zone_wplugs_work de disco). Esto también elimina las funciones disk_zone_wplug_set_error() y disk_zone_wplug_clear_error(). - Cambie el indicador de complemento de escritura de zona BLK_ZONE_WPLUG_ERROR a BLK_ZONE_WPLUG_NEED_WP_UPDATE. Este nuevo indicador se establece para un complemento de escritura de zona siempre que falla una operación de escritura dirigida a la zona del complemento de escritura de zona. Este indicador indica que el desplazamiento del puntero de escritura de zona no es confiable y que debe actualizarse cuando se ejecuta la siguiente zona de informe, zona de reinicio, zona de finalización o revalidación de disco. - Modifique blk_zone_write_plug_bio_endio() para establecer el indicador BLK_ZONE_WPLUG_NEED_WP_UPDATE para la zona de destino de un BIO de escritura fallida. - Modifique la función disk_zone_wplug_set_wp_offset() para borrar este nuevo indicador, implementando así la recuperación de un desplazamiento correcto del puntero de escritura con las operaciones de zona de reinicio (todas) y zona de finalización. - Modificar blkdev_report_zones() para que siempre use la devolución de llamada disk_report_zones_cb() de modo que se pueda llamar a disk_zone_wplug_sync_wp_offset() para cualquier zona marcada con el indicador BLK_ZONE_WPLUG_NEED_WP_UPDATE. ---- truncada ----

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.10 (incluyendo) 6.12.6 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:*