ZeroHour

CVE-2026-89778

mass1· 1 read

Out-of-bounds page-array read in Linux kernel zisofs (compressed ISO9660) handling

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

The Linux kernel's isofs zisofs decompressor mishandles empty compression blocks: a crafted "ZF" Rock Ridge record inside an ISO9660 image can set the compression block size below the kernel page size, and an ordinary read() of such a compressed file then drives zisofs_read_folio() one entry past the end of the allocated page-pointer array (KASAN reports a slab-out-of-bounds 8-byte read immediately past an 8-byte kmalloc-8 allocation, i.e. a single-entry array). An attacker triggers this by supplying a specially crafted ISO image that a user or automated service mounts and then reads; the page-aligned case (poffset == 0) is unaffected. An attacker gains kernel out-of-bounds memory access, potentially yielding information disclosure or a kernel crash, and the assigned CVSS 3.1 score is 9.8 critical, though the practical trigger requires mounting an attacker-controlled image rather than a purely remote path. Any Linux system that mounts untrusted ISO9660 images with ISO9660/zisofs support enabled is affected, including desktops handling removable media, CI/build and VM services that mount ISOs, and file managers with auto-mount. No public proof-of-concept or confirmed in-the-wild exploitation is known; the flaw is fixed by the upstream commit "isofs: fix out-of-bounds page array access on empty zisofs block," and no affected/fixed version ranges are specified in the available data.

What to do: Update the kernel to a release that includes the upstream fix "isofs: fix out-of-bounds page array access on empty zisofs block" once it reaches your distribution's stable channel; no fixed version numbers are available in the current data, so track your vendor's advisory. Until patched, avoid mounting ISO images from untrusted sources and restrict or disable automatic mounting of removable media and ISO files by unprivileged users. Verify whether your kernel is built with CONFIG_ISO9660_FS/CONFIG_ZISOFS; images using page-aligned blocks (poffset == 0) are unaffected.

Affected
Linux kernel, fs/isofs/compress.c (zisofs compressed ISO9660 support)
Estimated exposure
masshundreds of millions of Linux installations ship isofs/zisofs-capable kernels, though realistically only the subset that mounts attacker-supplied ISO images is… — Estimate based on the kernel's ubiquity across distributions, servers, and embedded devices, in which ISO9660 filesystem support is commonly enabled, tempered by the fact that exploitation requires locally mounting a crafted image rather…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: isofs: fix out-of-bounds page array access on empty zisofs block zisofs_uncompress_block()'s empty-block fast path returns pcount 17, so a crafted "ZF" Rock Ridge record can set it below PAGE_SHIFT; the bug is reached by an ordinary read() of a compressed file on such a mounted ISO9660 image. Return the byte count relative to poffset and zero only [poffset, PAGE_SIZE) of the first page, matching the decompression path. The page-aligned case (poffset == 0) is unaffected. BUG: KASAN: slab-out-of-bounds in zisofs_read_folio (fs/isofs/compress.c:290) Read of size 8 at addr ffff88800f5eac48 by task exploit/142 zisofs_read_folio (fs/isofs/compress.c:290) read_pages (mm/readahead.c:184) ... filemap_read (mm/filemap.c:2814) vfs_read (fs/read_write.c:574) __x64_sys_pread64 (fs/read_write.c:769) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) The buggy address is located 0 bytes to the right of the allocated 8-byte region in the kmalloc-8 cache

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.