In the Linux kernel, the following vulnerability has been resolved:
kcm: fix strp_init() order and cleanup
strp_init() is called just a few lines above this csk->sk_user_data check, it also initializes strp->work etc., therefore, it is unnecessary to call strp_done() to cancel the freshly initialized work.
And if sk_user_data is already used by KCM, psock->strp should not be touched, particularly strp->work state, so we need to move strp_init() after the csk->sk_user_data check.
This also makes a lockdep warning reported by syzbot go away.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 4.9.84 | 4.10 |
| linux / linux_kernel | 4.9.100 | 4.10 |
| linux / linux_kernel | 4.14.22 | 4.14.293 |
| linux / linux_kernel | 4.14.41 | 4.15 |
| linux / linux_kernel | 4.15.1 | 4.19.258 |
| linux / linux_kernel | 4.20 | 5.4.213 |
| linux / linux_kernel | 5.5 | 5.10.142 |
| linux / linux_kernel | 5.11 | 5.15.66 |
| linux / linux_kernel | 5.16 | 5.19.8 |
| linux / linux_kernel | 4.15 | 4.15.x |
| linux / linux_kernel | 6.0-rc1 | 6.0-rc1.x |
| linux / linux_kernel | 6.0-rc2 | 6.0-rc2.x |
| linux / linux_kernel | 6.0-rc3 | 6.0-rc3.x |