Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Check sk_state before sk_protocol in bpf_tcp_*_syncookie bpf_tcp_gen_syncookie and bpf_tcp_check_syncookie accept a socket pointer 'sk' with argument type ARG_PTR_TO_BTF_ID_SOCK_COMMON. However, they access sk->sk_protocol without validating whether 'sk' represents a full socket. Fix this issue by checking sk->sk_state != TCP_LISTEN before inspecting sk->sk_protocol in both bpf_tcp_gen_syncookie and bpf_tcp_check_syncookie. Since mini-sockets are never in the TCP_LISTEN state, the condition short-circuits and prevents dereferencing fullsock-specific fields.
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
399040847084a69f345e0a52fd62f04654e0fce3 to < b75f1c071f31be7f4b950721e04240c250091ad4affected399040847084a69f345e0a52fd62f04654e0fce3 to < 5702e4c259809c760912c477c4ae34e9217bb4d9affected399040847084a69f345e0a52fd62f04654e0fce3 to < b5525e853a2a08a9559adb84b0616025958dc542affected399040847084a69f345e0a52fd62f04654e0fce3 to < 22c2169770ad3b3595690e51caac875178cf496daffected399040847084a69f345e0a52fd62f04654e0fce3 to < 23f682083aa3fbc0c49667818efd6979a8bc5ac2affected399040847084a69f345e0a52fd62f04654e0fce3 to < 31a420a822ff92e2090bd5d65efe8e34e2d6d9b8affected
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.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b75f1c071f31be7f4b950721e04240c250091ad4 ↗
- https://git.kernel.org/stable/c/5702e4c259809c760912c477c4ae34e9217bb4d9 ↗
- https://git.kernel.org/stable/c/b5525e853a2a08a9559adb84b0616025958dc542 ↗
- https://git.kernel.org/stable/c/22c2169770ad3b3595690e51caac875178cf496d ↗
- https://git.kernel.org/stable/c/23f682083aa3fbc0c49667818efd6979a8bc5ac2 ↗
- https://git.kernel.org/stable/c/31a420a822ff92e2090bd5d65efe8e34e2d6d9b8 ↗