CVE-2026-31597 PUBLISHED

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

Assigner: Linux
Reserved: 09.03.2026 Published: 24.04.2026 Updated: 24.04.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 4cf2768a0291a0cdd0dae801ea0eafa3878a349d (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to d45ff441b416d4aa1af72b1db23d959601c04da2 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 76a602fdbb78dd05b2da06f74a988cebc97e82d0 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 925bf22c1b823e231b1baea761fe8a1512e442f2 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • unaffected from 6.12.83 to 6.12.* (incl.)
  • unaffected from 6.18.24 to 6.18.* (incl.)
  • unaffected from 6.19.14 to 6.19.* (incl.)
  • unaffected from 7.0.1 to 7.0.* (incl.)

References