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

smb: client: fix use-after-free of iface in cifs_try_adding_channels()

cifs_try_adding_channels() iterates ses->iface_list with
list_for_each_entry_safe_from(), which captures the next entry
(niface) under iface_lock. The loop body then drops iface_lock for
the whole duration of cifs_ses_add_channel().

A concurrent interface refresh (SMB3_request_interfaces() ->
parse_server_interfaces()) marks all ifaces inactive and removes and
frees any that are not re-advertised via list_del() + kref_put(),
where release_iface() is a bare kfree(). Since niface typically has
no channel holding a reference, the list reference is its last and it
can be freed inside the unlocked window. On continue, the iterator
advance step then dereferences niface->iface_head.next, and the loop
body reads iface->rdma_capable/is_active, both on freed memory.

Fix this by never keeping an unreferenced list pointer across the
unlocked window. Each channel attempt now re-scans the list from the
head under iface_lock, takes a kref on the selected candidate, and
passes only that referenced candidate to cifs_ses_add_channel().
weight_fulfilled still tracks selection progress, so restarting the
scan preserves the original weighted distribution and the
weight_fulfilled-before-kref_put ordering on the failure path.

Add a per-pass attempts cap so a flapping interface refresh cannot
keep the inner loop spinning within a single tries increment.
Published: 2026-10-06
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via use‑after‑free in the Linux SMB client resulting in a kernel crash
Action: Patch Immediately
AI Analysis

Impact

The vulnerability stems from a use‑after‑free bug in the Linux kernel SMB client. During channel addition, the code iterates over the interface list while holding a lock, then releases the lock while attempting to add a channel. Concurrently, an interface refresh can free inactive interfaces. If the iterator steps onto a freed interface, the code dereferences memory that has already been deallocated, causing a kernel fault. This flaw can trigger a kernel panic, disrupting the entire system and providing an availability loss. The description does not mention a direct path to code execution, and no mechanism for privilege escalation is explicitly documented.

Affected Systems

The flaw exists in the Linux kernel’s SMB client (cifs). Any Linux distribution that has not applied the upstream patch containing the commit that adds the use‑after‑free fix is vulnerable. Because no specific kernel versions are listed, all vulnerable kernel releases prior to the update that includes the fix are at risk.

Risk and Exploitability

The EPSS score is <1%, with a CVSS score of 7.5. The flaw is not listed in the CISA KEV catalog, yet the nature of the bug—a kernel use‑after‑free that leads to a crash—implies high severity. Attackers would need to initiate or interfere with SMB traffic to trigger the refresh and the race; this could likely originate from remote or local SMB traffic. Based on the description, it is inferred that SMB traffic is required, but the CVE does not explicitly specify the attack vector. While the exact likelihood of exploitation remains unclear, the EPSS score and the potential for denial of service raise the overall risk to high.

Generated by OpenCVE AI on October 8, 2026 at 14:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that includes the upstream commit fixing the use‑after‑free in cifs_try_adding_channels (refer to commit c941f1ebfd26f683de81091473f3596a218abff0).
  • If an immediate kernel upgrade is not feasible, block or limit SMB traffic on port 445 from untrusted sources using firewall rules to reduce the chance of the race condition being triggered.
  • Monitor system logs and kernel crash dumps for signs of SMB‑related panics and apply the vendor‑issued patch as soon as it becomes available.

Generated by OpenCVE AI on October 8, 2026 at 14:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Wed, 21 Oct 2026 13:15:00 +0000


Thu, 08 Oct 2026 12:15:00 +0000


Wed, 07 Oct 2026 09:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 07 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Wed, 07 Oct 2026 05:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: smb: client: fix use-after-free of iface in cifs_try_adding_channels() cifs_try_adding_channels() iterates ses->iface_list with list_for_each_entry_safe_from(), which captures the next entry (niface) under iface_lock. The loop body then drops iface_lock for the whole duration of cifs_ses_add_channel(). A concurrent interface refresh (SMB3_request_interfaces() -> parse_server_interfaces()) marks all ifaces inactive and removes and frees any that are not re-advertised via list_del() + kref_put(), where release_iface() is a bare kfree(). Since niface typically has no channel holding a reference, the list reference is its last and it can be freed inside the unlocked window. On continue, the iterator advance step then dereferences niface->iface_head.next, and the loop body reads iface->rdma_capable/is_active, both on freed memory. Fix this by never keeping an unreferenced list pointer across the unlocked window. Each channel attempt now re-scans the list from the head under iface_lock, takes a kref on the selected candidate, and passes only that referenced candidate to cifs_ses_add_channel(). weight_fulfilled still tracks selection progress, so restarting the scan preserves the original weighted distribution and the weight_fulfilled-before-kref_put ordering on the failure path. Add a per-pass attempts cap so a flapping interface refresh cannot keep the inner loop spinning within a single tries increment.
Title smb: client: fix use-after-free of iface in cifs_try_adding_channels()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-21T12:54:49.437Z

Reserved: 2026-09-25T10:25:14.322Z

Link: CVE-2026-98173

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:17:59.060

Modified: 2026-10-21T13:21:25.150

Link: CVE-2026-98173

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-06T00:00:00Z

Links: CVE-2026-98173 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-08T14:30:18Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference