Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: cancel reconnect work in clean_demultiplex_info() clean_demultiplex_info() 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: cifs_demultiplex_thread() cifs_readv_from_socket() cifs_reconnect() __cifs_reconnect() cifs_queue_server_reconn() mod_delayed_work(cifsiod_wq, &server->reconnect, 0) clean_demultiplex_info() cancel_delayed_work_sync(&server->echo) // echo canceled // reconnect NOT canceled kfree_sensitive(server) // server freed ...later, on cifsiod_wq: smb2_reconnect_server() server->srv_count // UAF read of freed server Fix this by canceling server->reconnect delayed work in clean_demultiplex_info() before the server is freed, the same way cifs_put_tcp_session() already does.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
53e0e11efe9289535b060a51d4cf37c25e0d0f2b to < 180380272f116dbd2b0354c5c7872e112e519149affected53e0e11efe9289535b060a51d4cf37c25e0d0f2b to < e3f6a779433d13aafb5edab59e4f9313051e8a52affected53e0e11efe9289535b060a51d4cf37c25e0d0f2b to < 7ab9ceedd860216fb97f2d8574cbe58b8906f42aaffected53e0e11efe9289535b060a51d4cf37c25e0d0f2b to < 2e5103e11a17c274715dd56cf185eeedccf686b8affected53e0e11efe9289535b060a51d4cf37c25e0d0f2b to < c65eae6f61d1778ff7a82e4aae4080e26f486af1affectede008a962311a875a828cbae54b43285858aaa6c8affected123b228a09b90b50b0a9d6eb8294cf0c42efc029affected0ba4c6eaaacbcc4b18f51bb3b1567c65a8fecca9affectedd0d2a4c82942e2f51e4984beea1f7e5a994bd06caffected15a12fbbf365a483b1c19f9caeb707b3bea77e10affectedf0b715409cb9cf7e21e690f9b163047739761962affectedff04da387c10b6bf7b510392742c8cd46c130fd6affected48f9526f4dcb4b132fe0dc2450835311e3b013a6affected3.10.107 to < 3.11affected3.12.70 to < 3.13affected3.16.42 to < 3.17affected3.18.47 to < 3.19affected4.1.38 to < 4.2affected4.4.40 to < 4.5affected4.8.16 to < 4.9affected4.9.1 to < 4.10affected
Linux Linux
Default version status: affected
4.10affected0 to < 4.10unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/180380272f116dbd2b0354c5c7872e112e519149 ↗
- https://git.kernel.org/stable/c/e3f6a779433d13aafb5edab59e4f9313051e8a52 ↗
- https://git.kernel.org/stable/c/7ab9ceedd860216fb97f2d8574cbe58b8906f42a ↗
- https://git.kernel.org/stable/c/2e5103e11a17c274715dd56cf185eeedccf686b8 ↗
- https://git.kernel.org/stable/c/c65eae6f61d1778ff7a82e4aae4080e26f486af1 ↗