CVE-2026-45984

gfs2: Fix use-after-free in iomap inline data write path

HIGH
7.8
CVSS Score
Published: May 27, 2026 at 12:18 PM UTC
Updated: October 19, 2026 at 08:18 PM UTC
2 products affected across 2 vendorsLinux KernelEnterprise Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: gfs2: Fix use-after-free in iomap inline data write path The inline data buffer head (dibh) is being released prematurely in gfs2_iomap_begin() via release_metapath() while iomap->inline_data still points to dibh->b_data. This causes a use-after-free when iomap_write_end_inline() later attempts to write to the inline data area. The bug sequence: 1. gfs2_iomap_begin() calls gfs2_meta_inode_buffer() to read inode metadata into dibh 2. Sets iomap->inline_data = dibh->b_data + sizeof(struct gfs2_dinode) 3. Calls release_metapath() which calls brelse(dibh), dropping refcount to 0 4. kswapd reclaims the page (~39ms later in the syzbot report) 5. iomap_write_end_inline() tries to memcpy() to iomap->inline_data 6. KASAN detects use-after-free write to freed memory Fix by storing dibh in iomap->private and incrementing its refcount with get_bh() in gfs2_iomap_begin(). The buffer is then properly released in gfs2_iomap_end() after the inline write completes, ensuring the page stays alive for the entire iomap operation. Note: A C reproducer is not available for this issue. The fix is based on analysis of the KASAN report and code review showing the buffer head is freed before use. [agruenba: Take buffer head reference in gfs2_iomap_begin() to avoid leaks in gfs2_iomap_get() and gfs2_iomap_alloc().]

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

5.11 ≤ v < 5.15.2025.16 ≤ v < 6.1.1655.2 ≤ v < 5.10.2526.13 ≤ v < 6.18.146.19 ≤ v < 6.19.46.2 ≤ v < 6.6.1286.7 ≤ v < 6.12.755.2d0a22a4b03b8475b7aa3fa41243c26c291407844
Vendor states this is fixed in 1403989d1b502f4a2c0d0b42ccf1c25748442eff (fixed)
Vendor states this is fixed in 1cae1bafdf9caa9b462b19af06b1a06902e4e142 (fixed)
Vendor states this is fixed in 6d76febba07c40bcf358f63216d36ea68cf1c215 (fixed)
Vendor states this is fixed in 764c3c84b5683e608f43735c803a5f415046686c (fixed)
Vendor states this is fixed in 815ddd27c0c7171a99fe802fdb19098ddef8b19d (fixed)
Vendor states this is fixed in 87d4954b5c59735a99ea98cb208d47130f6dce7d (fixed)
Vendor states this is fixed in d87268326b277af3665237ac76a73dd9fa8e21b4 (fixed)
Vendor states this is fixed in faddeb848305e79db89ee0479bb0e33380656321 (fixed)
Vendor states this is fixed in 5.10.252 (unaffected)
Vendor states this is fixed in 5.15.202 (unaffected)
Vendor states this is fixed in 5.2 (unaffected)
Vendor states this is fixed in 6.1.165 (unaffected)
Vendor states this is fixed in 6.12.75 (unaffected)
Vendor states this is fixed in 6.18.14 (unaffected)
Vendor states this is fixed in 6.19.4 (unaffected)
Vendor states this is fixed in 6.6.128 (unaffected)
Vendor states this is fixed in 7.0 (unaffected)
Vendor states this is fixed in 0:3.10.0-1160.159.1.el7 (unaffected)
Vendor states this is fixed in 0:3.10.0-1160.159.1.rt56.1311.el7 (unaffected)
Vendor states this is fixed in 0:4.18.0-372.199.1.el8_6 (unaffected)
Vendor states this is fixed in 0:4.18.0-477.159.1.el8_8 (unaffected)
Vendor states this is fixed in 0:4.18.0-553.139.1.el8_10 (unaffected)
Vendor states this is fixed in 0:4.18.0-553.139.1.rt7.480.el8_10 (unaffected)
Vendor states this is fixed in 0:5.14.0-284.186.1.el9_2 (unaffected)
Vendor states this is fixed in 0:5.14.0-284.186.1.rt14.471.el9_2 (unaffected)
Vendor states this is fixed in 0:5.14.0-427.136.1.el9_4 (unaffected)
Vendor states this is fixed in 0:5.14.0-570.127.1.el9_6 (unaffected)
Vendor states this is fixed in 0:5.14.0-687.17.1.el9_8 (unaffected)
Vendor states this is fixed in 10 (unaffected)
Vendor states this is fixed in 10 (unknown)
Vendor states this is fixed in 26 (unknown)
Vendor states this is fixed in 6 (unknown)

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-416CWE-826

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card