CVE-2025-39725 in Linux
要約
〜によって VulDB • 2026年06月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm/vmscan: shrink_folio_list()におけるhwpoisonedなlarge folioの処理を修正
shrink_folio_list()関数内では、hwpoisonedされたfolioがlarge folioである可能性があり、これはunmap_poisoned_folio()では処理できません。THP(Transparent Huge Pages)の場合、まずhuge PMDを分割するためにtry_to_unmap_one()にTTU_SPLIT_HUGE_PMDフラグを渡して_retry_する必要があります。TTU_SPLIT_HUGE_PMDを指定しない場合、pvmw.pteのnullポインタ参照が発生します。また、TTU_SPLIT_HUGE_PMDを渡した場合でも、ページがswapcacheに存在しないためWARN_ON_ONCE()が発動する可能性があります。
UCE(Uncorrectable Corrected Error)は現実世界では稀であり、reclaimationとの競合状態はさらに稀であるため、hwpoisonedなlarge folioをスキップするだけで十分です。もし再度UCEが発生した場合はmemory_failure()が処理を行います。
これは、large folioに対するメモリリクライムとmemory_failure()の間に競合状態が生じた場合に発生し、カーネルパニックを引き起こします。競合状態の詳細は以下の通りです:
cpu0 cpu1 shrink_folio_list memory_failure TestSetPageHWPoison unmap_poisoned_folio --> unmap_poisoned_folioがlarge folioを処理できないためBUG_ON()が発動
[[email protected]: unmap_poisoned_folio()にコメントを追加]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.