Skip to main content
VulnerabilityPublished Updated

CVE-2026-98173: Linux kernel · smb: client: fix use-after-free of iface in cifs_try_adding_channels()

Source GCVE Database

0
Compare
Authoritative record:CVE-2026-98173· High 7.5

Not known to be exploited · CVSS 7.5 High · fixed in ee0d8f83d68f6e6509f092c997ccab3c8c801538 : patch Linux kernel soon.

Data as of 30 Oct 2026, 16:33 UTC

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (Linux)CVSS 3.17.5
Patch
Available – fixed in ee0d8f83d68f6e6509f092c997ccab3c8c801538, ec36b38e65596950e6c29bed7dfc90b98707c19c, e99040e5e9c60441e6b4725e1a7b88c3106ae903 +3
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 6 Oct 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < ee0d8f83d68f6e6509f092c997ccab3c8c801538
Fixed in
  • ee0d8f83d68f6e6509f092c997ccab3c8c801538
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < ec36b38e65596950e6c29bed7dfc90b98707c19c
Fixed in
  • ec36b38e65596950e6c29bed7dfc90b98707c19c
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < e99040e5e9c60441e6b4725e1a7b88c3106ae903
Fixed in
  • e99040e5e9c60441e6b4725e1a7b88c3106ae903
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < d034e836eefd7ce75e588f7031cffbeec594f5ac
Fixed in
  • d034e836eefd7ce75e588f7031cffbeec594f5ac
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < c941f1ebfd26f683de81091473f3596a218abff0
Fixed in
  • c941f1ebfd26f683de81091473f3596a218abff0
LinuxLinuxAffected
  • ≥ aa45dadd34e44fcd6a9df4b395bee5b5633b4cec, < 93e8a49adb2a575202c5ee766435eff2f9f95f5b
Fixed in
  • 93e8a49adb2a575202c5ee766435eff2f9f95f5b

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.

References

Community reviews

Loading reviews…