Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d before f6814814b3bdd6ecb6bc1fc53ba4e827e0185f01; affected 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d before 24139461545e44442df9b80deace26b2eb3e103d; affected 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d before 01f8a354497ba739f81b691b3702bc4c46500a4d; affected 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d before 14b49b5ab29979552c219a09e569b424fbbf4a6e; affected 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d before 7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f |
| Linux / Linux | affected 5.2; unaffected 0 before 5.2; unaffected 6.6.160 through 6.6.*; unaffected 6.12.114 through 6.12.*; unaffected 6.18.57 through 6.18.*; unaffected 7.1.6 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- 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
ADP enrichment
No English description supplied.
No references supplied.