CVE-2026-99280 in Linuxinfo

Summary

by MITRE • 11/07/2026

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

ksmbd: drain session procfs readers before dropping table references

Session registration failure and connection cleanup can drop the table reference while the per-session procfs entry is still accessible. If a reader holds the last remaining reference, its final put calls proc_remove() from its own callback and waits for that callback to finish.

Remove the procfs entry before dropping the table reference in the registration failure path. Queue sessions removed during connection cleanup and drain their procfs readers after releasing both session locks, then return their table references. Keep the global hash node unhashed while a session is queued so a concurrent unregister cannot drop the reference again.

Previous-session replacement also destroys the file table before the session is finally freed. Detach the idr under the lock used by procfs file counters, and report zero files after it has been detached. This prevents a reader from accessing the idr during or after its destruction.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 11/07/2026

The vulnerability identified in the Linux kernel's ksmbd subsystem involves a race condition related to reference counting and synchronization between session management and procfs file operations. Specifically, when a session registration fails or during connection cleanup procedures, the system may drop table references while per-session procfs entries remain accessible to user space readers. This creates a scenario where if a reader holds the last remaining reference to these resources, its final put operation triggers proc_remove from within its own callback context and waits for that callback to complete. The core issue lies in the ordering of resource deallocation versus access control, allowing potential use-after-free conditions or deadlocks due to improper locking hierarchies during teardown sequences.

From a technical perspective, this flaw represents an incorrect synchronization mechanism where shared data structures are modified without adequate protection against concurrent access from different execution contexts. The procfs interface serves as a bridge between kernel internal state and user space monitoring tools, requiring strict adherence to reference counting protocols. When the table reference is dropped prematurely while readers still hold active file descriptors pointing into that structure, it violates fundamental memory safety principles by allowing access to potentially freed or invalid memory regions. This aligns with CWE-416 which describes use-after-free vulnerabilities where program execution continues after a pointer has been dereferenced following its deallocation.

The operational impact of this vulnerability extends beyond simple crashes or kernel panics, though those are likely outcomes under heavy load conditions involving rapid session creation and destruction cycles. Attackers could potentially exploit the race condition to cause denial of service by triggering infinite waits within procfs callbacks, effectively hanging processes that interact with these specific ksmbd entries. In more severe scenarios depending on memory layout and exploitation techniques, there might be implications for arbitrary code execution if an attacker can manipulate the state during this window of vulnerability where references are being released but not yet fully cleaned up in all contexts.

To mitigate this risk, the resolution involves restructuring how session lifecycle events interact with procfs management functions. The fix requires removing the procfs entry before dropping table references in registration failure paths to ensure no dangling pointers remain accessible. For sessions removed during connection cleanup, they must be queued and their associated procfs readers drained only after releasing both session locks, ensuring that all concurrent access attempts are blocked before reference counts are decremented. Additionally keeping global hash nodes unhashed while a session is queued prevents concurrent unregister operations from dropping references again prematurely.

Further hardening involves detaching the idr under the lock used by procfs file counters and reporting zero files after detachment to prevent readers from accessing the idr during or after its destruction phase. This approach ensures that any attempt to read session information will either see valid data or be blocked entirely rather than encountering corrupted state. These changes reflect best practices in kernel development regarding resource management, emphasizing atomic operations and proper lock ordering to maintain consistency across multiple subsystems interacting with shared resources like procfs entries and session tables.

This vulnerability falls under ATT&CK technique T1059 which covers command and script interpreter abuse, although the primary concern here is stability rather than direct exploitation for persistence or lateral movement. However, understanding such race conditions helps security teams identify similar patterns in other kernel components where user-space interfaces interact with internal state management systems. Regular auditing of reference counting logic and synchronization primitives remains critical for maintaining robustness against these subtle timing-based flaws that can compromise system integrity over time through accumulated errors during high-throughput network operations typical in SMB server environments.

Responsible

Linux

Reservation

09/25/2026

Disclosure

11/07/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!