LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
タイトル LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。ocfs2におけるVM_FAULT_RETRY時のocfs2_fault()関数に存在したuse-after-freeの問題です。filemap_fault()関数はVM_FAULT_RETRYを返す前にmmap_lockを解放することがあります。これはmm/filemap.cに記載されており、「返り値にVM_FAULT_RETRYが設定されている場合、それはI/Oを行う前またはlock_folio_maybe_drop_mmap()によってmmap_lockが解放される可能性があるためです。」と説明されています。この状況下で、同時に実行されているmunmap()関数がremove_vma()を呼び出し、RCUを介してvm_area_structを解放する可能性があります。その結果、ocfs2_fault()内に保存されている'vma'ポインタがダングリングポインタとなり、後続のtrace_ocfs2_fault()呼び出し時に参照されてuse-after-freeが発生していました。修正内容として、filemap_fault()を呼び出す前にip_blknoを単純な整数として保存し、トレースイベントからvmaを除去しました。ip_blknoはロックが解放される前に値としてコピーされるため、その後vmaやinodeに何が起きても問題なく有効な状態を維持します。

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

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

公表日 2026年4月24日0:00
登録日 2026年4月30日11:04
最終更新日 2026年4月30日11:04
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 2.6.39 以上 6.6.136 未満
Linux Kernel 6.13 以上 6.18.24 未満
Linux Kernel 6.19 以上 6.19.14 未満
Linux Kernel 6.7 以上 6.12.83 未満
Linux Kernel 7.0 以上 7.0.1 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年04月30日]
  掲載
2026年4月30日11:04

NVD脆弱性情報
CVE-2026-31597
概要

In the Linux kernel, the following vulnerability has been resolved:

ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY

filemap_fault() may drop the mmap_lock before returning VM_FAULT_RETRY,
as documented in mm/filemap.c:

"If our return value has VM_FAULT_RETRY set, it's because the mmap_lock
may be dropped before doing I/O or by lock_folio_maybe_drop_mmap()."

When this happens, a concurrent munmap() can call remove_vma() and free
the vm_area_struct via RCU. The saved 'vma' pointer in ocfs2_fault() then
becomes a dangling pointer, and the subsequent trace_ocfs2_fault() call
dereferences it -- a use-after-free.

Fix this by saving ip_blkno as a plain integer before calling
filemap_fault(), and removing vma from the trace event. Since
ip_blkno is copied by value before the lock can be dropped, it
remains valid regardless of what happens to the vma or inode
afterward.

公表日 2026年4月25日0:16
登録日 2026年4月25日4:07
最終更新日 2026年4月29日23:15
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 2.6.39 6.6.136
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 6.12.83
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.24
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.14
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 7.0 7.0.1
関連情報、対策とツール
共通脆弱性一覧