KernelScan.io

HIGH

smb Session Reuse

CVE-2026-31392

CVSS 8.1 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:L

KernelScan AI5.5MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix krb5 mount with username option Customer reported that some of their krb5 mounts were failing against a single server as the client was trying to mount the shares with wrong credentials. It turned out the client was reusing SMB session from first mount to try mounting the other shares, even though a different username= option had been specified to the other mounts. By using username mount option along with sec=krb5 to search for principals from keytab is supported by cifs.upcall(8) since cifs-utils-4.8. So fix this by matching username mount option in match_session() even with Kerberos. For example, the second mount below should fail with -ENOKEY as there is no 'foobar' principal in keytab (/etc/krb5.keytab). The client ends up reusing SMB session from first mount to perform the second one, which is wrong. ``` $ ktutil ktutil: add_entry -password -p testuser -k 1 -e aes256-cts Password for testuser@ZELDA.TEST: ktutil: write_kt /etc/krb5.keytab ktutil: quit $ klist -ke Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- ---------------------------------------------------------------- 1 testuser@ZELDA.TEST (aes256-cts-hmac-sha1-96) $ mount.cifs //w22-root2/scratch /mnt/1 -o sec=krb5,username=testuser $ mount.cifs //w22-root2/scratch /mnt/2 -o sec=krb5,username=foobar $ mount -t cifs | grep -Po 'username=\K\w+' testuser testuser ```

02

Engine v0.2.0

Risk summary

Local users can access SMB shares with incorrect credentials when using Kerberos authentication. The SMB client incorrectly reuses existing sessions even when different usernames are specified, potentially allowing unauthorized access to files that should be restricted to specific Kerberos principals.

Affectedfs/smb/client/connect.c (SMB client)

Vulnerability analysis

The root cause is in the match_session() function which failed to compare usernames when matching Kerberos sessions, only checking the credential UID. This allowed the client to reuse an existing SMB session from one mount when attempting to mount with a different username, bypassing proper Kerberos principal validation. The fix adds a username comparison in the Kerberos case to ensure sessions are only reused when both UID and username match. Attack surface is local-only, requiring the ability to mount SMB shares and access to Kerberos credentials.

03

BranchFixed inPatch commit
2.62.6.35fd4547830720
6.16.1.1679229709ec8bf
6.126.12.789ee803bfdba0
6.186.18.206e9ff1eb7fee
6.196.19.1012b4c5d98cd7
6.66.6.130d33cbf0bf897
mainline7.0