CVE-2026-72367

iomap: guard io_size EOF trim against concurrent truncate underflow

State
Published
Severity
8.8 High
Published
Aug 15, 2026
Updated
Oct 21, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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

iomap: guard io_size EOF trim against concurrent truncate underflow

iomap: fix zero padding data issue in concurrent append writes changed ioend accounting so that io_size tracks only valid data within EOF. This trims io_size when a writeback range extends past end_pos:

ioend->io_size += map_len; if (ioend->io_offset + ioend->io_size > end_pos) ioend->io_size = end_pos - ioend->io_offset;

However, if end_pos ends up below ioend->io_offset, the subtraction becomes negative and is stored in size_t io_size, causing an unsigned wrap to a huge value. This can happen when writeback continues past byte-level EOF up to a block-aligned range, or when a concurrent truncate shrinks the file after end_pos was sampled in iomap_writeback_handle_eof().

A wrapped io_size can mislead append detection and corrupt completion-time size handling, since filesystem end_io paths consume io_size for decisions such as on-disk EOF updates and unwritten/COW completion ranges.

Fix this by clamping io_size to zero when EOF has moved to or before the ioend start offset. This preserves the original intent of trimming io_size to valid in-EOF data while avoiding the underflow.

Scores

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

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 82c59a86a247a8970d353d10f52a37e5564fb137 to before cc1d6af0bee27d6595908b497424f338161299fcAffected
  • 51d20d1dacbec589d459e11fc88fbca419f84a99 to before 1f38f65bf965fce9aa159d45c5347538f56c5973Affected
  • 51d20d1dacbec589d459e11fc88fbca419f84a99 to before 7f7780abb4c0fdc9a2603aea8e985ff14ee900e0Affected
  • 51d20d1dacbec589d459e11fc88fbca419f84a99 to before 55ec50d046c03b3724741957f7b007856e36dbe7Affected
  • 6.12.10 to before 6.12.114Affected
LinuxLinux
  • 6.13Affected
  • before 6.13Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.