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値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/24 |
| 最終更新日 | 2026/07/24 |



