CVE-2026-89616: fs/ntfs3: fix info-leak on partial LZNT decompress in ni_read_frame()

Published Sep 11, 2026
·
Updated

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

fs/ntfs3: fix info-leak on partial LZNT decompress in nireadframe()

nireadframe() decompresses an LZNT $DATA frame into the vmapped target pages and then trusts decompresslznt()'s return value:

uncsize = decompresslznt(frameondisk, ondisksize, framemem, framesize); if ((ssizet)uncsize < 0) err = uncsize; else if (!uncsize || uncsize > framesize) err = -EINVAL;

decompresslznt() stops as soon as the compressed stream is exhausted (e.g. a zero chunk header) and returns the number of bytes it actually wrote, which may be far less than framesize. The bytes between uncsize and framesize are never written. The only memset() that follows zeroes the region beyond ivalid; when the frame lies entirely within the file's valid size that memset() does not run, so the gap retains whatever was in the just-vmapped pages. All pages are then marked uptodate and returned to userspace, disclosing uninitialized (recently-freed) kernel page memory. A crafted compressed file whose stream decompresses to only a few bytes leaks the remainder of every frame on a plain read(2), which is enough to recover kernel pointers and defeat KASLR.

Zero the [uncsize, framesize) tail immediately after a successful LZNT decompress so the remainder reads back as zero.

Affected Software

1 affected component
Linux Kernel Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Apply the fs/ntfs3 fix in ni_read_frame() so that after a successful LZNT decompression, the bytes in the tail range [unc_size, frame_size) are zeroed immediately; this prevents an info-leak of uninitialized/recently-freed kernel memory on plain read(2) when decompress_lznt() writes less than frame_size.

    Linux kernel (fs/ntfs3) LZNT partial decompression zeroing = Zero the [unc_size, frame_size) tail immediately after a successful LZNT decompress

Event History

Sep 11, 2026
CVE Published
via MITRE·07:45 PM
Data Sourced
via MITRE·07:45 PM
Description

Frequently Asked Questions

1

Who is exposed to this issue?

Systems using the Linux kernel ntfs3 filesystem driver are exposed when they read a crafted NTFS file containing compressed LZNT $DATA frames. The leak occurs through a normal read(2) of the affected file.

2

What does an attacker need to exploit it?

An attacker needs to provide a crafted compressed NTFS file whose compressed stream decompresses to only a small amount of data relative to the frame size. Reading that file can return unwritten portions of vmapped pages to userspace.

3

What information can be disclosed?

The unwritten portion of each affected frame can contain uninitialized, recently freed kernel page memory. The disclosed data may include kernel pointers.

4

What can be done before the fix is deployed?

Avoid reading untrusted NTFS files that use compressed LZNT data through the ntfs3 driver. In particular, do not mount or process attacker-supplied NTFS content where it may be read by local applications.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203