Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix UAF in sock clone early bailouts Similar to recent commit 9b51a6155d14 ("bpf,fork: wipe ->bpf_storage before bailouts that access it"), sk_clone() performs an initial shallow copy of the socket field ->sk_bpf_storage via sock_copy() for the cloned socket newsk. If sk_clone() bails out early (e.g. if sk_filter_charge() fails) prior to calling bpf_sk_storage_clone(), newsk->sk_bpf_storage still points to the parent socket's BPF local storage. When newsk is subsequently freed via sk_free(), the deallocation path (__sk_destruct() -> bpf_sk_storage_free()) destroys the parent socket's BPF local storage, leading to a use-after-free (UAF) on the parent socket. Fix this by resetting newsk->sk_bpf_storage to NULL immediately after sock_copy() in sk_clone(), and remove the now redundant initialization from bpf_sk_storage_clone().
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
6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < ac855efc6bb216b262b672af68219e5b731f42a4affected6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < f6814814b3bdd6ecb6bc1fc53ba4e827e0185f01affected6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < 24139461545e44442df9b80deace26b2eb3e103daffected6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < 01f8a354497ba739f81b691b3702bc4c46500a4daffected6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < 14b49b5ab29979552c219a09e569b424fbbf4a6eaffected6ac99e8f23d4b10258406ca0dd7bffca5f31da9d to < 7cbd0c4cebe4c9f678d15e6b9ba975e1155a107faffected
Linux Linux
Default version status: affected
5.2affected0 to < 5.2unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ac855efc6bb216b262b672af68219e5b731f42a4 ↗
- https://git.kernel.org/stable/c/f6814814b3bdd6ecb6bc1fc53ba4e827e0185f01 ↗
- https://git.kernel.org/stable/c/24139461545e44442df9b80deace26b2eb3e103d ↗
- https://git.kernel.org/stable/c/01f8a354497ba739f81b691b3702bc4c46500a4d ↗
- https://git.kernel.org/stable/c/14b49b5ab29979552c219a09e569b424fbbf4a6e ↗
- https://git.kernel.org/stable/c/7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f ↗