CVE-2026-98261 in Linuxinfo

Summary

by MITRE • 10/06/2026

In the Linux kernel, the following vulnerability has been resolved:

cifs: Fix server use-after-free in cifs_chan_skip_or_disable()

When a secondary channel is no longer supported by the server, cifs_chan_skip_or_disable() drops the channel reference with cifs_put_tcp_session() and then continues to use the server pointer by calling cifs_signal_cifsd_for_reconnect() on it and reading its primary_server pointer. cifs_put_tcp_session() can drop the last reference of the channel and tear it down, so both the channel and the primary server (whose reference is also dropped by cifs_put_tcp_session()) can be freed before they are signaled for reconnect.

Signal the channel and the primary server and capture the primary server pointer before dropping the channel reference with cifs_put_tcp_session().

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/06/2026

The vulnerability identified in the Linux kernel's Common Internet File System (CIFS) client implementation represents a critical use-after-free condition within the network channel management logic. Specifically, this flaw resides in the function cifs_chan_skip_or_disable(), which is responsible for handling scenarios where a secondary communication channel supported by an SMB server becomes unavailable or unsupported during operation. The core technical defect involves improper reference counting and object lifetime management when tearing down these channels. When the system determines that a secondary channel should be skipped or disabled, it invokes cifs_put_tcp_session() to release its internal resources. However, immediately following this deallocation call, the code proceeds to access pointers associated with both the now-deallocated channel structure and its primary server counterpart by calling cifs_signal_cifsd_for_reconnect(). This sequence creates a race condition where the memory backing these structures may be reclaimed and reallocated for other kernel purposes before the subsequent operations can safely complete.

From a technical perspective, this is a classic instance of accessing freed memory due to incorrect ordering of reference release and usage. The cifs_put_tcp_session() function acts as the destructor for the TCP session associated with the channel. If this call reduces the reference count of the primary server object or the channel structure itself to zero, the kernel's slab allocator will immediately free that memory. Subsequent reads of the primary_server pointer or calls signaling the server for reconnection then operate on invalid addresses. This can lead to unpredictable system behavior, including kernel panics, data corruption if the freed memory is overwritten with new data before access occurs, or potential information disclosure if sensitive kernel pointers are leaked through unintended read operations. The vulnerability highlights a failure in adhering to strict object lifecycle protocols where all necessary references must be secured and processed prior to any deallocation step that might invalidate those objects.

The operational impact of this vulnerability is significant for systems relying on CIFS mounts, particularly in enterprise environments with complex network topologies or high-latency connections where channel negotiation failures are more likely. An attacker who can trigger the specific conditions leading to cifs_chan_skip_or_disable() execution could potentially cause a denial of service by crashing the kernel. In more sophisticated attack scenarios involving controlled memory allocation patterns, this use-after-free condition might be exploited for arbitrary code execution or privilege escalation, although such exploitation would require precise timing and knowledge of the kernel's internal memory layout. The severity is compounded by the fact that CIFS is often used in privileged contexts where file system access controls are enforced at a high level, making successful exploitation potentially devastating to overall system integrity.

This vulnerability maps directly to CWE-416, Use After Free, which describes the error of using a pointer after it has been freed. In terms of offensive security frameworks, this flaw aligns with ATT&CK technique T1203, Exploitation for Client Execution, as it involves manipulating client-side software behavior through malformed or unexpected server responses that trigger the flawed code path. Mitigation strategies primarily involve applying the upstream kernel patch provided by Linux distribution maintainers to correct the order of operations within cifs_chan_skip_or_disable(). The fix ensures that signals are sent and pointers are captured before any reference counting decrements occur, thereby guaranteeing object validity during access. Administrators should also ensure their systems are updated with the latest security patches for the CIFS client module and monitor logs for signs of kernel oops or panic messages related to SMB/CIFS operations to detect potential exploitation attempts early.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/06/2026

Moderation

accepted

EPSS

0.00175

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!