【活用ガイド】

JVNDB-2026-025015

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。powerpc/pgtable-frag:pte_frag_destroyにおける不正なページ状態の修正。powerpcは、pt_frag_refcountを参照カウンタとして使用し、pteおよびpmdのページテーブル断片を追跡しています。PTEテーブルでは、64Kページサイズのハッシュ方式の場合、1つの64Kページに4Kサイズの断片が16個存在します。パッチシリーズ[1]「mm: free retracted page table by RCU」では、shmemレンジのmadvise MADV_COLLAPSE呼び出しでretract_page_tables()が実行された際に、PTEテーブルの解放を遅延させるためのpte_free_defer()が追加されました。[1]: https://lore.kernel.org/all/7cd843a9-aa80-14f-5eb2-33427363c20@google.com/ pte_free_defer()は該当する断片のfolioにactiveフラグをセットし、pte_fragment_free()を呼び出してpt_frag_refcountを減らします。pt_frag_refcountが0になると(folioを使用しているアクティブな断片がない場合)、folioのactiveフラグがセットされているかを確認し、セットされていればcall_rcuを呼んでfolioを解放し、セットされていなければpte_free_now()を呼び出します。しかし、これにより以下のようなコーナーケースの問題が発生する可能性があります。[ 265.351553][ T183] BUG: Bad page state in process a.out pfn:20d62[ 265.353555][ T183] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x20d62...(省略)この不正なページ状態エラーは、activeフラグがセットされたままfolioが並行してdo_exit()パスから解放されると発生します。この状況は、pte断片がこのfolioから割り当てられ、すべての断片が解放されたにもかかわらず、pt_frag_refcountに未使用の断片が残っている場合に発生します。このプロセスが終了すると、このfolioがmm->contextのキャッシュされたpte_fragとして存在する状態になります。pte_frag_destroy()内で単純にpagetable_dtor()とpagetable_free()を呼び出しますが、activeフラグはクリアされません。これが上述のバグの原因となる動作です。do_exit()パスにいる場合、参照カウントが0であれば、pagetable_dtor()とpagetable_free()を呼び出す前にfolioのactiveフラグを単純にクリアしても問題はありません。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.19 以上 7.0.10 未満
  • Linux Kernel 6.6 以上 6.18.33 未満

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

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

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-53109
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-53109
  2. 関連文書 : powerpc/pgtable-frag: Fix bad page state in pte_frag_destroy - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c8b710655012a2993a9567873fb71a8a51f8459c)
  3. 関連文書 : powerpc/pgtable-frag: Fix bad page state in pte_frag_destroy - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/fda4d71651f71c44b35829d13f3c8bf920032f77)
  4. 関連文書 : powerpc/pgtable-frag: Fix bad page state in pte_frag_destroy - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a32db6fca3c74b4eb8bae5470f0680deb4cbac6f)
更新履歴

  • [2026年07月24日]
      掲載