CVE-2026-89616 in Linux信息

摘要

由 VulDB • 2026-09-11

在 Linux 内核中,已修复以下漏洞:

fs/ntfs3: 修复 ni_read_frame() 中部分 LZNT 解压缩时的信息泄露问题

ni_read_frame() 将 LZNT $DATA 帧解压到 vmapped(虚拟映射)的目标页面中,然后信任 decompress_lznt() 的返回值:

```c unc_size = decompress_lznt(frame_ondisk, ondisk_size, frame_mem, frame_size); if ((ssize_t)unc_size < 0) err = unc_size; else if (!unc_size || unc_size > frame_size) err = -EINVAL; ```

decompress_lznt() 在压缩流耗尽时立即停止(例如遇到零块头),并返回其实际写入的字节数,该数值可能远小于 frame_size。从 unc_size 到 frame_size 之间的字节从未被写入。随后唯一的 memset() 操作会将 i_valid 之外的区域清零;当帧完全位于文件的有效大小范围内时,该 memset() 不会执行,因此间隙部分保留了刚刚 vmapped 页面中的原有数据。所有页面随后被标记为 uptodate(已更新)并返回给用户空间,从而泄露未初始化(最近释放的)内核页内存。一个经过构造的压缩文件,其流仅解压出少量字节,在普通 read(2) 操作时会泄漏每个帧的剩余部分,这足以恢复内核指针并绕过 KASLR 防护。

在成功执行 LZNT 解压缩后,立即将 [unc_size, frame_size) 尾部区域清零,使得读取该部分时返回零值。

Once again VulDB remains the best source for vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!