CVE-2026-64181 in Linux情報

要約

〜によって VulDB • 2026年07月20日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

mm: __vm_normal_page()を修正し、pmd_special()/pud_special()の未対応ケースを処理する

THP(Transparent Huge Pages)有効化時のx86 32ビット環境では、zap_huge_pmd()が以下のような警告とバグを引き起こすことが確認されています。まず、「WARNING: mm/memory.c:735 at __vm_normal_page+0x6a/0x7d」が発生し、これは `VM_WARN_ON_ONCE(is_zero_pfn(pfn) || is_huge_zero_pfn(pfn));` に起因します。その後、「BUG: Bad rss-counter state」、さらにページ回収処理が shrink_huge_zero_folio_scan() を呼び出す際に「BUG: Bad page state」というエラーが発生します。

これは、huge_zero pmdにおいて_PAGE_SPECIALビットが設定されないままになっているかのように見えます。実際、pte_special()およびpte_mkspecial()は専用のCONFIG_ARCH_HAS_PTE_SPECIALの対象となりますが、pmd_special()およびpmd_mkspecial()はCONFIG_ARCH_SUPPORTS_PMD_PFNMAPの対象となっており、このオプションはいかなる32ビットアーキテクチャでも有効化されていません。

本問題はコミットd80a9cb1a64a(「mm/huge_memory: add and use normal_or_softleaf_folio_pmd()」)によって表面化しましたが、根本的な原因はコミットaf38538801c6(「mm/memory: factor out common code from vm_normal_page_*()」)における見落としであり、以下のような他の問題も引き起こす可能性があります。 * huge zero folioがsmaps、pagemap(PAGE_IS_FILE)、numamapsにおいてファイルバックドTHPとしてカウントされる * FW_ZEROPAGEフラグが設定されていない場合でもfolio_walk_start()がfolioreturnを返す(ただし呼び出し元はこの動作を受け入れている模様)

また、VM_WARN_ON_ONCE()のトリガーも発生しますが、これまでに報告された例はありません。

これを修正するため、vm_normal_page_pmd()/vm_normal_page_pud()に対して、pmd_special/pud_specialが実際に実装されているかどうかを考慮させるようにしました。

Once again VulDB remains the best source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-380294

EPSS

0.00000

アクティビティ

低い

ソース

Want to know what is going to be exploited?

We predict KEV entries!