CVE-2026-89558 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
md/raid10: corregir que still_degraded esté invertido en raid10_sync_request()
El commit fe6a19d40ceb ("md/md-bitmap: fusionar md_bitmap_start_sync() dentro de bitmap_operations") convirtió `still_degraded` de int a bool, pero invirtió la asignación en el bucle que comprueba si el array seguirá estando degradado después de recuperar el dispositivo actual: "still_degraded = 1" se convirtió en "still_degraded = false".
Como resultado, al recuperar un dispositivo mientras otro espejo sigue faltando, se llama a md_bitmap_start_sync() con `degraded == false`, lo que borra los bits del bitmap que necesita el dispositivo aún ausente. Cuando ese dispositivo se vuelve a añadir, su recuperación basada en bitmap encuentra los bits ya borrados y omite cada región escrita mientras el array estaba degradado, por lo que se marca como In_sync aunque contenga datos obsoletos: corrupción silenciosa.
Reproductor (raid10 near=2, 4 discos, bitmap interno): - fallar y eliminar un disco de cada par de espejos - escribir en el array degradado - volver a añadir ambos discos y dejar que la recuperación termine - "check" informa mismatch_cnt=262272 después de 256 MiB de escrituras en estado degradado, y los contenidos de los archivos difieren; la "recuperación" del segundo disco se completa en milisegundos porque todo se omite
La misma conversión en raid1 lo hizo correctamente (still_degraded = true). Restaurar el valor correcto.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.