JVNDB-2026-025016 | |
LinuxのLinux Kernelにおける競合状態に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。powerpc/64s: PMDマイグレーションエントリとのアンマップ競合の修正です。マイグレーションスワップエントリやデバイス専用のTHPエントリにおいて、以下のような競合が発生する可能性があります。例えば、move_pagesがPMD THPページに対して呼び出された場合、中間状態としてPMDエントリがマイグレーションスワップエントリとして機能することがあります(pmd_present()はtrueです)。このときに同時にmunmapが実行されると、pmdp_huge_get_and_clear_full()内でVM_BUG_ON()が発生することがあります。このパッチはこの問題を修正します。スレッドAでは、move_pages() システムコールが呼び出され、add_folio_for_migration()、mmap_read_lock(mm)、folio_isolate_lru(folio)、mmap_read_unlock(mm)、do_move_pages_to_node()、migrate_pages()、try_to_migrate_one()、spin_lock(ptl)、set_pmd_migration_entry()、pmdp_invalidate()(PMD: _PAGE_INVALID | _PAGE_PTE | pfn)、set_pmd_at()(PMD: マイグレーションスワップエントリ (pmd_present=0))、spin_unlock(ptl)まで実行され、その後ページコピー段階に進みます(これが競合時間窓です)。一方、スレッドBではmunmap()が呼び出され、mmap_write_downgrade(mm)、unmap_vmas() -> zap_pmd_range()、zap_huge_pmd()、__pmd_trans_huge_lock()、pmd_is_huge()(!pmd_present && !pmd_noneがTRUE、つまりスワップエントリです)、pmd_lock() -> spin_lock(ptl)(ここでスレッドAのptl解放を待ちます)、pmdp_huge_get_and_clear_full()、そしてVM_BUG_ON(!pmd_present(*pmdp))が実行されます。この時にエラーが発生しました。ログに見られるように、PowerPC 64sアーキテクチャにおいてこの問題はkernel BUGを引き起こし、システムの安定性に影響を及ぼす可能性がありました。また、commit a30b48bf1b24("mm/migrate_device: implement THP migration of zone device pages")により、デバイス専用のPMDエントリでもマイグレーションが有効化され、この警告が発生する他の経路も存在することが確認されています。この修正により、アンマップとマイグレーションエントリの競合によるクラッシュを防止し、PowerPC 64s環境における信頼性が向上しました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 4.7 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/24 |
| 最終更新日 | 2026/07/24 |



