CVE-2026-31597

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

State
Published
Severity
7.8 High
Published
Apr 24, 2026
Updated
Aug 5, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 36539c4d536f851a3b346a6ebb27b51bc3d77a94Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 35c2c05261d6f6d84aaa1355afa201d507943e76Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 3f5e74b5db9353b01ed50f4de84e75b755f8fbc2Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 6f072daefcab1d84ce37c073645615f63be91006Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 4cf2768a0291a0cdd0dae801ea0eafa3878a349dAffected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before d45ff441b416d4aa1af72b1db23d959601c04da2Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 76a602fdbb78dd05b2da06f74a988cebc97e82d0Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 925bf22c1b823e231b1baea761fe8a1512e442f2Affected
  • 614a9e849ca6ea24843795251cb30af525d5336b to before 7de554cabf160e331e4442e2a9ad874ca9875921Affected
LinuxLinux
  • 2.6.39Affected
  • before 2.6.39Not affected
  • 5.10.258 through 5.10.*Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.175 through 6.1.*Not affected
  • 6.6.136 through 6.6.*Not affected
  • 6.12.83 through 6.12.*Not affected
  • 6.18.24 through 6.18.*Not affected
  • 6.19.14 through 6.19.*Not affected
  • 7.0.1 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.