Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-64136

CVE-2026-64136: Linux Kernel Privilege Escalation Flaw

CVE-2026-64136 is a privilege escalation vulnerability in the Linux kernel SMB client affecting tc_count locking. This article covers the technical details, affected versions, security impact, and mitigation strategies.

Published:

CVE-2026-64136 Overview

CVE-2026-64136 is a Linux kernel vulnerability in the SMB client code. The flaw exists in smb2_find_smb_sess_tcon_unlocked(), where an increment of the tc_count field occurs without the required lock. A previous refactor introduced by commit 96c4af418586 ("cifs: Fix locking usage for tcon fields") replaced cifs_tcp_ses_lock with tc_lock for tc_count accesses but missed this specific code path. The unprotected reference counter update creates a race condition on the tcon (tree connection) object used by the CIFS/SMB client.

Critical Impact

Concurrent SMB client operations can corrupt the tc_count reference counter, leading to memory safety issues in the Linux kernel.

Affected Products

  • Linux kernel versions containing commit 96c4af418586 prior to the fix
  • Systems using the in-kernel CIFS/SMB client (cifs.ko)
  • Distributions shipping affected stable kernel branches

Discovery Timeline

  • 2026-07-19 - CVE-2026-64136 published to NVD
  • 2026-07-20 - Last updated in NVD database

Technical Details for CVE-2026-64136

Vulnerability Analysis

The vulnerability resides in the Linux kernel SMB client at fs/smb/client/smb2misc.c, within smb2_find_smb_sess_tcon_unlocked(). This function iterates over tree connections associated with an SMB session and increments the tc_count reference counter on a matched struct cifs_tcon. Reference counter operations on shared kernel objects must occur under an appropriate lock to prevent concurrent modification. The missing tc_lock around the increment allows two kernel threads to update tc_count simultaneously, producing lost updates or use-after-free conditions when the counter falls out of sync with actual references.

Root Cause

Commit 96c4af418586 migrated tc_count protection from the broader cifs_tcp_ses_lock to the finer-grained per-tcon tc_lock. The refactor did not convert every write site. The increment inside smb2_find_smb_sess_tcon_unlocked() remained unprotected, breaking the invariant that all tc_count modifications occur under tc_lock.

Attack Vector

The attack vector is local to any process able to trigger concurrent SMB client operations against the same mount, such as parallel file access on a mounted CIFS/SMB share. A local attacker who can force the kernel to look up the same tcon from multiple threads can induce the race. The consequence is memory corruption in kernel space, which may be leveraged for privilege escalation or denial of service. See the Linux kernel fix commit 7df1df6 for the code change.

Detection Methods for CVE-2026-64136

Indicators of Compromise

  • Kernel oops or panic messages referencing cifs_put_tcon, tconInfoFree, or smb2_find_smb_sess_tcon_unlocked
  • Unexpected refcount_t warnings such as refcount_t: underflow or saturation in dmesg
  • Sporadic use-after-free KASAN reports in the cifs/smb client module

Detection Strategies

  • Enable CONFIG_KASAN and CONFIG_REFCOUNT_FULL on test systems to surface races on tc_count
  • Audit loaded kernel version against the fix commits listed in the NVD references
  • Correlate CIFS mount activity with kernel ring buffer anomalies collected by log forwarders

Monitoring Recommendations

  • Forward /var/log/kern.log and journalctl -k output to a centralized log store for kernel fault analysis
  • Alert on kernel module crashes in cifs.ko across the fleet
  • Track SMB mount workloads on multi-threaded workstations and servers where the race is more likely to trigger

How to Mitigate CVE-2026-64136

Immediate Actions Required

  • Inventory Linux hosts running kernels between the introduction of commit 96c4af418586 and the fix commits
  • Apply the vendor-provided stable kernel update that includes the missing tc_lock around the tc_count increment
  • Reboot systems after patching to load the corrected cifs.ko module

Patch Information

The fix adds the missing tc_lock around the tc_count increment inside smb2_find_smb_sess_tcon_unlocked(). The change is available in the following stable kernel commits: 13fb413, 4d8690d, 7df1df6, bf4ebdb, and e374f4e. Consume the fix through your distribution's kernel package update channel.

Workarounds

  • Unmount CIFS/SMB shares on affected hosts until the patched kernel is deployed
  • Disable automatic loading of the cifs module via /etc/modprobe.d/ on systems that do not require SMB client functionality
  • Restrict local user access on hosts where CIFS mounts must remain active to reduce race triggering opportunities

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.