CVE-2025-38084 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
mm/hugetlb: eseguire l'unsharing delle tabelle di pagina durante la suddivisione della VMA, non prima
Attualmente, __split_vma() attiva l'unsharing delle tabelle di pagina hugetlb tramite vm_ops->may_split(). Questo avviene prima che vengano acquisiti il lock sulla VMA e i lock rmap - il che è troppo presto: consente fault a livello di pagina in race condition bloccati dalla VMA nel nostro processo e walk rmap in race condition da altri processi, causando la condivisione delle tabelle di pagina nuovamente prima che venga effettivamente eseguita la suddivisione.
Si risolve esplicitamente chiamando la logica di unsharing hugetlb direttamente da __split_vma() nello stesso punto in cui avviene anche la suddivisione THP (Transparent Huge Pages). A quel punto, sia la VMA che i rmap sono bloccati in scrittura.
Un dettaglio fastidioso è che ora possiamo richiamare l'helper hugetlb_unshare_pmds() da due contesti di locking diversi:
1. da hugetlb_split(), mantenendo: - il lock mmap (esclusivo) - il lock VMA - il lock file rmap (esclusivo) 2. hugetlb_unshare_all_pmds(), che si presume sia progettato per poter chiamare questa funzione detenendo solo il lock mmap (in modalità condivisa), ma attualmente viene eseguito solo mantenendo il lock mmap (esclusivamente) e il lock VMA
Nota sul backporting: Questo commit corregge una protezione soggetta a race condition introdotta nel commit b30c14cd6102 ("hugetlb: unshare some PMDs when splitting VMAs"); tale commit affermava di risolvere un problema introdotto nella versione 5.13, ma in realtà dovrebbe essere applicato retroattivamente fino alle versioni precedenti.
[[email protected]: v2]
If you want to get best quality of vulnerability data, you may have to visit VulDB.