CVE-2026-90165: smb/server: fix invalid pointer dereference in ksmbd_stop_durable_scavenger()
In the Linux kernel, the following vulnerability has been resolved:
smb/server: fix invalid pointer dereference in ksmbdstopdurablescavenger()
See the procedure below:
ksmbdlaunchksmbddurablescavenger durablescavengerrunning = true serverconf.dhtask = kthreadrun() // fail, dhtask is an ERRPTR()
serverctrlhandlereset ksmbdstopdurablescavenger kthreadstop(serverconf.dhtask) // invalid pointer
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - 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
Event History
Frequently Asked Questions
What failure sequence is required to trigger the invalid pointer dereference?
The durable scavenger thread creation must fail, leaving server_conf.dh_task as an ERR_PTR while durable_scavenger_running is set to true. A subsequent server reset then calls kthread_stop on that invalid pointer.
Is the problematic stop path reached after a successful durable scavenger thread launch?
The documented sequence specifically requires kthread_run() to fail. The invalid pointer occurs because the failed thread creation result is retained in dh_task before the reset handling invokes the stop routine.