Debian等の複数ベンダの製品における不特定の脆弱性
タイトル 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()を適切に呼び出してページテーブル同期を行うため、この問題の影響を受けません。

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

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

公表日 2025年9月19日0:00
登録日 2026年1月22日11:30
最終更新日 2026年1月22日11:30
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
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.17
Linux Kernel 6.2 以上 6.6.105 未満
Linux Kernel 6.7 以上 6.12.46 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年01月22日]
  掲載
2026年1月22日11:30