CVE-2022-49732

Summary

In the Linux kernel, the following vulnerability has been resolved:

sock: redo the psock vs ULP protection check

Commit 8a59f9d1e3d4 ("sock: Introduce sk->sk_prot->psock_update_sk_prot()") has moved the inet_csk_has_ulp(sk) check from sk_psock_init() to the new tcp_bpf_update_proto() function. I'm guessing that this was done to allow creating psocks for non-inet sockets.

Unfortunately the destruction path for psock includes the ULP unwind, so we need to fail the sk_psock_init() itself. Otherwise if ULP is already present we'll notice that later, and call tcp_update_ulp() with the sk_proto of the ULP itself, which will most likely result in the ULP looping its callbacks.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux8a59f9d1e3d4340659fdfee8879dc09a6f2546e1 < 72fa0f65b56605b8a9ae9fba2082f2123f7fe017affected
LinuxLinux8a59f9d1e3d4340659fdfee8879dc09a6f2546e1 < 922309e50befb0cfa5cb65e4989b7706d6578846affected
LinuxLinux8a59f9d1e3d4340659fdfee8879dc09a6f2546e1 < e34a07c0ae3906f97eb18df50902e2a01c1015b6affected
LinuxLinux5.13affected
LinuxLinux0 < 5.13unaffected
LinuxLinux5.15.51 <= 5.15.*unaffected
LinuxLinux5.18.8 <= 5.18.*unaffected
LinuxLinux5.19 <= *unaffected

Weaknesses

References