Skip to main content
Vulnerability Database/CVE-2026-89778

CVE-2026-89778: Linux Kernel ISOFS Buffer Overflow Vulnerability

CVE-2026-89778 is a buffer overflow flaw in Linux kernel ISOFS that enables out-of-bounds memory access through crafted ISO9660 images. This article covers the technical details, affected versions, and mitigation steps.

Published:

CVE-2026-89778 Overview

CVE-2026-89778 is an out-of-bounds read vulnerability in the Linux kernel's isofs filesystem, specifically within the zisofs compressed ISO9660 handling code. The flaw resides in zisofs_uncompress_block(), where the empty-block fast path returns pcount << PAGE_SHIFT while ignoring the incoming poffset argument. When the zisofs block size is smaller than PAGE_SIZE, zisofs_fill_pages() advances its page cursor incorrectly and reads pages[1] past the end of the allocated array. An attacker can trigger the condition by mounting a crafted ISO9660 image with a malicious Rock Ridge ZF record and performing a normal read() on a compressed file.

Critical Impact

A crafted ISO9660 image can cause a slab out-of-bounds read in the kernel, enabling denial of service or potential kernel information disclosure via ordinary file reads.

Affected Products

  • Linux kernel isofs filesystem with zisofs compression support
  • Distributions shipping vulnerable stable kernel branches referenced by the upstream fix commits
  • Systems that auto-mount removable or user-supplied ISO9660 media

Discovery Timeline

  • 2026-09-16 - CVE-2026-89778 published to NVD
  • 2026-09-16 - Last updated in NVD database

Technical Details for CVE-2026-89778

Vulnerability Analysis

The vulnerability is an out-of-bounds read [CWE-125] in the kernel path that handles compressed ISO9660 (zisofs) reads. The decompression path in zisofs_uncompress_block() returns byte counts relative to the caller-supplied poffset. The empty-block fast path does not. Instead, it returns pcount << PAGE_SHIFT, over-counting the bytes produced when poffset is nonzero.

The caller, zisofs_fill_pages(), uses that return value to advance its page cursor across the pages[] array. When the zisofs block size shift is below PAGE_SHIFT, a sub-page block can leave poffset partway into the current page. A subsequent empty block then advances the cursor one element past the end of pages[]. The following check if (poffset && *pages) dereferences pages[1], reading eight bytes past the allocation. KASAN observes the fault in the kmalloc-8 cache at zisofs_read_folio (fs/isofs/compress.c:290).

Root Cause

The root cause is inconsistent return-value semantics between the two branches of zisofs_uncompress_block(). The empty-block fast path ignores poffset and zeros full pages, while the decompression path correctly returns bytes relative to poffset. Additionally, rock.c only rejects a block-size shift greater than 17, permitting values below PAGE_SHIFT in the Rock Ridge ZF record.

Attack Vector

Exploitation requires an attacker-controlled ISO9660 image mounted on the target system. Any read() or pread64() against a compressed file whose ZF record encodes a sub-PAGE_SIZE block will trigger the out-of-bounds access. This maps to physical-media insertion, USB attacks, or network shares that deliver ISO images auto-mounted by desktop environments or automated pipelines. No credentials are required if the mount is performed by a privileged helper on user insertion.

The vulnerability manifests during the read syscall path: __x64_sys_pread64 → vfs_read → filemap_read → read_pages → zisofs_read_folio. See the upstream fix commits referenced below for the corrected byte-count arithmetic and page-zeroing bounds.

Detection Methods for CVE-2026-89778

Indicators of Compromise

  • KASAN reports of slab-out-of-bounds reads in zisofs_read_folio at fs/isofs/compress.c in kernel logs
  • Unexpected kernel oops, panics, or task crashes correlated with iso9660 mount events
  • Presence of ISO9660 images containing Rock Ridge ZF records with block-size shift values below PAGE_SHIFT (typically below 12)

Detection Strategies

  • Audit dmesg and journalctl -k for KASAN messages referencing zisofs_uncompress_block or zisofs_fill_pages
  • Monitor mount syscalls for iso9660 filesystem types originating from untrusted media or user sessions
  • Inventory hosts running vulnerable kernel builds by cross-referencing installed kernel versions against the upstream fix commits

Monitoring Recommendations

  • Enable kernel crash reporting (kdump, systemd-coredump) to capture backtraces containing zisofs_read_folio
  • Alert on repeated ISO9660 mount attempts from removable media on servers and workstations
  • Forward kernel logs to a centralized SIEM for correlation of KASAN or oops signatures across the fleet

How to Mitigate CVE-2026-89778

Immediate Actions Required

  • Apply the upstream kernel patches listed in the Patch Information section as soon as vendor builds become available
  • Disable auto-mounting of removable ISO9660 media on servers and multi-user systems
  • Restrict mount privileges so unprivileged users cannot mount attacker-supplied ISO images

Patch Information

Upstream fixes correct zisofs_uncompress_block() to return the byte count relative to poffset and to zero only the range [poffset, PAGE_SIZE) of the first page, matching the decompression path. The page-aligned case (poffset == 0) is unaffected. Fix commits: 68d4d3e, 85904076, 8b994ac5, 9c6eace8, ad3249cd, cd616aa0, f03425dc.

Workarounds

  • Blacklist the isofs kernel module on hosts that do not require ISO9660 support using echo 'blacklist isofs' > /etc/modprobe.d/blacklist-isofs.conf
  • Configure udev and desktop session policies to prevent automatic mounting of optical media and ISO image files
  • Enforce mount options that reject user-supplied filesystem images and require administrator approval for ISO9660 mounts

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.