CVE-2026-98173smb: client: fix use-after-free of iface in cifs_try_adding_channels()
Updated under an hour ago ()
Does this affect you?
It affects Linux. Add what you run to find out whether that includes you.
EPSS puts the chance of exploitation in the next 30 days at 0.33%, higher than 24% of scored CVEs.
Do this next
Free account, 1 product
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.
- CVSS
- 7.5 HIGH (v3.1, CNA)CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
- Weakness (CWE)
- Not given
- Known exploited
- Not in CISA's KEV catalog
- EPSS (exploitation in the next 30 days)
- 0.33% (percentile 24)
- Assigned by
- Linux
- NVD analysis
- Received
- Record last updated
- Oct 7, 2026
- First seen by InfoSec Signals
- Oct 9, 2026
Affected products
Linux Linux linux:linux (from the name) | from aa45dadd34e44fcd6a9df4b395bee5b5633b4cec before c941f1ebfd26f683de81091473f3596a218abff0; from aa45dadd34e44fcd6a9df4b395bee5b5633b4cec before e99040e5e9c60441e6b4725e1a7b88c3106ae903; from aa45dadd34e44fcd6a9df4b395bee5b5633b4cec before ec36b38e65596950e6c29bed7dfc90b98707c19c; from aa45dadd34e44fcd6a9df4b395bee5b5633b4cec before d034e836eefd7ce75e588f7031cffbeec594f5ac | CNA record |
References
- https://git.kernel.org/stable/c/c941f1ebfd26f683de81091473f3596a218abff0
- https://git.kernel.org/stable/c/e99040e5e9c60441e6b4725e1a7b88c3106ae903
- https://git.kernel.org/stable/c/ec36b38e65596950e6c29bed7dfc90b98707c19c
- https://git.kernel.org/stable/c/d034e836eefd7ce75e588f7031cffbeec594f5ac
The CVE record on cve.org NVD's entry
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.