UBUNTU-CVE-2026-98175: Use After Free
In the Linux kernel, the following vulnerability has been resolved: smb: client: cancel reconnect work in cleandemultiplexinfo() cleandemultiplexinfo() cancels server->echo delayed work but not server->reconnect, which can cause a use-after-free when the demultiplex thread exits while a reconnect work is still queued: cifsdemultiplexthread() cifsreadvfromsocket() cifsreconnect() cifsreconnect() cifsqueueserverreconn() moddelayedwork(cifsiodwq, &server->reconnect, 0) cleandemultiplexinfo() canceldelayedworksync(&server->echo) // echo canceled // reconnect NOT canceled kfreesensitive(server) // server freed ...later, on cifsiodwq: smb2reconnectserver() server->srvcount // UAF read of freed server Fix this by canceling server->reconnect delayed work in cleandemultiplexinfo() before the server is freed, the same way cifsputtcpsession() already does.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In clean_demultiplex_info(), cancel server->reconnect delayed work with cancel_delayed_work_sync(&server->reconnect) before freeing server, as already done for server->echo and in cifs_put_tcp_session().