CVE-2023-53121
Description
In the Linux kernel, the following vulnerability has been resolved: tcp: tcp_make_synack() can be called from process context tcp_rtx_synack() now could be called in process context as explained in 0a375c822497 ("tcp: tcp_rtx_synack() can be called from process context"). tcp_rtx_synack() might call tcp_make_synack(), which will touch per-CPU variables with preemption enabled. This causes the following BUG: BUG: using __this_cpu_add() in preemptible [00000000] code: ThriftIO1/5464 caller is tcp_make_synack+0x841/0xac0 Call Trace: <TASK> dump_stack_lvl+0x10d/0x1a0 check_preemption_disabled+0x104/0x110 tcp_make_synack+0x841/0xac0 tcp_v6_send_synack+0x5c/0x450 tcp_rtx_synack+0xeb/0x1f0 inet_rtx_syn_ack+0x34/0x60 tcp_check_req+0x3af/0x9e0 tcp_rcv_state_process+0x59b/0x2030 tcp_v6_do_rcv+0x5f5/0x700 release_sock+0x3a/0xf0 tcp_sendmsg+0x33/0x40 ____sys_sendmsg+0x2f2/0x490 __sys_sendmsg+0x184/0x230 do_syscall_64+0x3d/0x90 Avoid calling __TCP_INC_STATS() with will touch per-cpu variables. Use TCP_INC_STATS() which is safe to be called from context switch.
How to fix
- linux linux_kernel4.14.311, 4.19.279, 5.4.238, 5.10.176, 5.15.104, 6.1.21, 6.2.8 or later
- git.kernel.org/stable/c/442aa78ed70188b21ccd8669738448702c0a3281
- git.kernel.org/stable/c/7613cde8c0c1f02a7ec2e1d536c01b65b135fc1c
- git.kernel.org/stable/c/77ad58bca0119e8cc3e0e9d91a3f22caa66e4dfa
- git.kernel.org/stable/c/9180aa4622a720b433e842b4d3aa34d73eec577a
- git.kernel.org/stable/c/ad07290d63ff6689f50565b02f5b6f34ec15a5ca
- git.kernel.org/stable/c/bced3f7db95ff2e6ca29dc4d1c9751ab5e736a09
- git.kernel.org/stable/c/d493d4fe88195a144d6a277a90062a7534ed2192
- git.kernel.org/stable/c/e23ca307745be3df7fe9762f3e2a7e311a57852e
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| linux linux_kernel | 3.7 ≤ v < 4.14.311, 4.15 ≤ v < 4.19.279, 4.20 ≤ v < 5.4.238, 5.5 ≤ v < 5.10.176, 5.11 ≤ v < 5.15.104, 5.16 ≤ v < 6.1.21, 6.2 ≤ v < 6.2.8, 6.3 | 4.14.311, 4.19.279, 5.4.238, 5.10.176, 5.15.104, 6.1.21, 6.2.8 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.