CVE-2024-40950 in Linux
要約
〜によって VulDB • 2026年06月17日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm: huge_memory: anon folio に対する mapping_large_folio_support() の誤使用を修正
large folio の分割テストを実行した際、WARNING "[ 5059.122759][ T166] Cannot split file folio to non-0 order" が発生しました。しかし、テストケースは匿名 folio (anonymous folios) のみのものでした。mapping_large_folio_support() はページキャッシュ folio に対してのみ意味を成します。
split_huge_page_to_list_to_order() において、mapping_large_folio_support() に渡される folio は匿名 folio である可能性があります。folio_test_anon() によるチェックが欠落しているため、匿名 THP (Transparent Huge Page) の分割に失敗します。これは shmem_mapping() についても同様です。両方に対してチェックを追加するのが望ましいですが、__split_huge_page() 内の shmem_mapping() は関与しません。匿名 folio の場合、end パラメータは -1 に設定されるため、(head[i].index >= end) は常に false となり、shmem_mapping() は呼び出されないからです。
また、mapping_large_folio_support() に匿名マッピングに対する VM_WARN_ON_ONCE() を追加し、誤った使用をより容易に検出できるようにしました。
THP folio は、ファイルシステムが large folio をサポートしていない場合でもページキャッシュ内に存在する可能性があります。これは、CONFIG_TRANSPARENT_HUGEPAGE が有効化されている場合、khugepaged が読み取り専用ファイルバックドページを THP に凝縮しようとするためです。ただし、マッピングは実際にはマルチオーダーの large folio を適切にサポートしていません。
/sys/kernel/debug/split_huge_pages を使用してこれを検証したところ、このパッチにより large anon THP の分割が成功し、警告が停止しました。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.