CVE-2025-39725 in Linux
Resumen
por VulDB • 2026-05-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
mm/vmscan: corregir el manejo de folios grandes en estado hwpoisoned en shrink_folio_list
En shrink_folio_list(), el folio en estado hwpoisoned puede ser un folio grande, el cual no puede ser manejado por unmap_poisoned_folio(). Para THP (Transparent Huge Pages), try_to_unmap_one() debe recibir TTU_SPLIT_HUGE_PMD para dividir el PMD grande primero y luego reintentar. Sin TTU_SPLIT_HUGE_PMD, se producirá una desreferenciación de puntero nulo (null-ptr deref) de pvmw.pte. Incluso si se pasa TTU_SPLIT_HUGE_PMD, se activará un WARN_ON_ONCE debido a que la página no está en el swapcache.
Dado que UCE (Uncorrectable Correctable Error) es raro en el mundo real, y la carrera con la recuperación de memoria (reclaimation) es aún más rara, simplemente omitir el folio grande en estado hwpoisoned es suficiente. memory_failure() lo gestionará si se activa de nuevo UCE.
Esto ocurre cuando la recuperación de memoria para un folio grande entra en carrera con memory_failure(), lo que provocará un kernel panic. La carrera se produce de la siguiente manera:
cpu0 cpu1 shrink_folio_list memory_failure TestSetPageHWPoison unmap_poisoned_folio --> se activa BUG_ON debido a que unmap_poisoned_folio no puede manejar folios grandes
[[email protected]: añadir comentario a unmap_poisoned_folio()]
If you want to get best quality of vulnerability data, you may have to visit VulDB.