Critical · published February 29, 2024
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: fix race condition between session lookup and expire
Thread A + Thread B
ksmbd_session_lookup | smb2_sess_setup
sess = xa_load |
|
| xa_erase(&conn->sessions, sess->id);
|
| ksmbd_session_destroy(sess) --> kfree(sess)
|
// UAF! |
sess->last_active = jiffies |
+
This patch add rwsem to fix race condition between ksmbd_session_lookup
and ksmbd_expire_session.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.15, < 5.15.145 | 5.15.145 |
| linux/linux_kernel | ≥ 5.16, < 6.1.57 | 6.1.57 |
| linux/linux_kernel | ≥ 6.2, < 6.5.7 | 6.5.7 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |