CVE-2026-31597

HIGH

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

Title source: cna
STIX 2.1

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

CVSS v3 7.8
EPSS 0.0001
EPSS Percentile 2.4%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Details

CWE
CWE-416
Status published
Products (19)
Linux/Linux < 2.6.39
Linux/Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - 4cf2768a0291a0cdd0dae801ea0eafa3878a349d
Linux/Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - 76a602fdbb78dd05b2da06f74a988cebc97e82d0
Linux/Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - 925bf22c1b823e231b1baea761fe8a1512e442f2
Linux/Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 - d45ff441b416d4aa1af72b1db23d959601c04da2
Linux/Linux 2.6.39
Linux/Linux 6.12.83 - 6.12.*
Linux/Linux 6.18.24 - 6.18.*
Linux/Linux 6.19.14 - 6.19.*
Linux/Linux 6.6.136 - 6.6.*
... and 9 more
Published Apr 24, 2026
Tracked Since Apr 24, 2026