【活用ガイド】

JVNDB-2025-025027

Debian等の複数ベンダの製品における不特定の脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。mmでは、ページテーブル同期の宣言をlinux/pgtable.hに移動しました。内部テスト中に、4レベルページングを使用し大量の永続メモリを搭載したマシンで断続的な起動失敗が観測されました。具体的には、ページフォルトを処理できず、カーネルモードのスーパーバイザ書き込みアクセスでクラッシュする問題が発生しました。原因は、vmemmap(struct page配列)を初期化する際、vmemmap領域が2つのPGDエントリにまたがる場合に、init_mm.pgdにのみ新しいPGDエントリをインストールし、他のタスクのページテーブルにはインストールされない点にありました。__populate_section_memmap()の中で、vmemmap_can_optimize()が真を返す場合、最適化されたパスはトップレベルのページテーブル同期をスキップします。しかしこれは、vmemmap_populate_compound_pages()がコアMMコードに実装されており、トップレベルページテーブルの同期を扱わず、代わりに各アーキテクチャ側で手動同期を行う設計によるものです。この設計は同期忘れやカーネルが同期前にvmemmapや直接マッピング領域にアクセスしてしまう問題を招きやすく、脆弱性を引き起こしました。これに対し、Dave Hansenは{pgd,p4d}_populate_kernel()を導入し、カーネル側のページテーブル更新とトップレベルエントリの同期を明示的に行えるよう提案しました。この新インターフェースは既存のARCH_PAGE_TABLE_SYNC_MASK、PGTBL_P*D_MODIFIED、arch_sync_kernel_mappings()を利用しており、同期漏れのリスクを低減しコードの堅牢性を向上させています。pgd_populate_kernel()の実装例は、init_mmを用いてpgdを設定した後、同期フラグがセットされていればarch_sync_kernel_mappings()を呼び出します。なお、vmalloc()やapply_to_range()はp*d_alloc_track()とarch_sync_kernel_mappings()を適切に呼び出してページテーブル同期を行うため、この問題の影響を受けません。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Debian
  • Debian GNU/Linux 11.0
Linux
  • Linux Kernel 5.13 以上 5.15.192 未満
  • Linux Kernel 5.16 以上 6.1.151 未満
  • Linux Kernel 6.13 以上 6.16.6 未満
  • Linux Kernel 6.2 以上 6.6.105 未満
  • Linux Kernel 6.7 以上 6.12.46 未満
  • Linux Kernel 6.17

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
また、当該ソフトウェアが扱う情報について、書き換えは発生しません。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

Debian
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 情報不足(CWE-noinfo) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2025-39844
参考情報

  1. National Vulnerability Database (NVD) : CVE-2025-39844
  2. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4f7537772011fad832f83d6848f8eab282545bef)
  3. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7cc183f2e67d19b03ee5c13a6664b8c6cc37ff9d)
  4. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6797a8b3f71b2cb558b8771a03450dc3e004e453)
  5. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/732e62212f49d549c91071b4da7942ee3058f7a2)
  6. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/469f9d22751472b81eaaf8a27fcdb5a70741c342)
  7. 関連文書 : mm: move page table sync declarations to linux/pgtable.h - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/eceb44e1f94bd641b2a4e8c09b64c797c4eabc15)
更新履歴

  • [2026年01月22日]
      掲載