CVE-2026-98173
smb: client: fix use-after-free of iface in cifs_try_adding_channels()
No known exploitation. EPSS puts it in the 24th percentile. Fixed versions are out.
What to do
Find your product and version, then upgrade to the build on the right.
- LinuxAffected: ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < c941f1ebfd26f683de81091473f3596a218abff0Upgrade to: c941f1ebfd26f683de81091473f3596a218abff0Affected: ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < e99040e5e9c60441e6b4725e1a7b88c3106ae903Upgrade to: e99040e5e9c60441e6b4725e1a7b88c3106ae903Affected: ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < ec36b38e65596950e6c29bed7dfc90b98707c19cUpgrade to: ec36b38e65596950e6c29bed7dfc90b98707c19cAffected: ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < d034e836eefd7ce75e588f7031cffbeec594f5acUpgrade to: d034e836eefd7ce75e588f7031cffbeec594f5acStated by: CVE record
Versions as the sources state them. Full version matrix after sign-in
What it is
From the CVE record
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.
In plain language
No plain-language summary for this CVE yet.
Exploitation
Where each signal puts this CVE on the scale from published to confirmed exploited.
- CISA KEV
Not in the catalog. CISA has not confirmed exploitation.
- Public exploits
No public exploit or proof of concept found in the sources we track.
- EPSS
0.3% chance of exploitation activity in the next 30 days, which ranks it in the 24th percentile of scored CVEs.
Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.
Lifecycle
3 events over 1 day, from the signal feeds we watch.
- Record updated
- Publishedrecord updated
Affected products
Technical detail
CVSS 3.1 vector
Open in the CVSS calculatorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Scored 7.5 by NVD.
How it is reached
- Attack Vector NetworkExploitable remotely over the network without any special conditions
- Attack Complexity HighRequires specific conditions like a race condition or non-default configuration
- Privileges Required NoneNo authentication required — anyone can exploit this
- User Interaction RequiredA user must click a link, open a file, or perform some action
Scope
- Scope UnchangedImpact is limited to the vulnerable component itself
Impact if exploited
- Confidentiality HighTotal information disclosure — all data in the component is compromised
- Integrity HighTotal loss of integrity — attacker can modify any data in the component
- Availability HighTotal denial of service — the component is completely unavailable
Sources
References in the record
- git.kernel.org/stable/c/c941f1ebfd26f683de81091473f3596a218abff0
- git.kernel.org/stable/c/e99040e5e9c60441e6b4725e1a7b88c3106ae903
- git.kernel.org/stable/c/ec36b38e65596950e6c29bed7dfc90b98707c19c
And 1 more reference. See all after sign-in
In the news
Watch the software you run.
My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.
We'll flag the next CVE, public exploit or patch for Linux, not every advisory.
A free account adds
- The full version matrix and every affected product
- Exploit links, proofs of concept and Metasploit modules
- Email alerts for the products you watch
- The same data over REST API, MCP and CLI