CVE-2026-31787
xen/privcmd: VMA分割による二重解放の修正
- 公開済み
- 2026/04/30
- 更新済み
- 2026/06/14
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/09/04
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 今後 30 日間
- パーセンタイル
- 8.2%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
# Linuxカーネルにおいて、以下の脆弱性が解決されました: xen/privcmd: VMA分割による二重解放を修正 privcmd_vm_opsは.close(privcmd_close)を定義していますが、.may_splitも.openも定義していません。ユーザー空間がprivcmdマッピングに対して部分的なmunmap()を実行すると、カーネルは__split_vma()を介してVMAを分割します。may_splitがNULLであるため、分割は許可されます。vm_area_dup()は、.openコールバックがないため、vm_private_data(alloc_empty_pages()で割り当てられたページ配列)を修正なしで新しいVMAにコピーします。両方のVMAが同じページ配列を指すことになります。マップ解除された部分がクローズされると、privcmd_close()は以下を呼び出します: - xen_unmap_domain_gfn_range() - xen_free_unpopulated_pages() - kvfree(pages) 残存するVMAは依然としてダングリングポインタを保持しています。その後、それが破棄されると、同じシーケンスが再度実行され、二重解放につながります。この問題を修正するには、VMA分割を拒否する.may_splitコールバックを追加します。これはXSA-487 / CVE-2026-31787です。
ソース
1LinuxカーネルのXen privcmdドライバーにおける二重解放
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。