CVE-2024-35910
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
19/05/2024
Last modified:
17/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tcp: properly terminate timers for kernel sockets<br />
<br />
We had various syzbot reports about tcp timers firing after<br />
the corresponding netns has been dismantled.<br />
<br />
Fortunately Josef Bacik could trigger the issue more often,<br />
and could test a patch I wrote two years ago.<br />
<br />
When TCP sockets are closed, we call inet_csk_clear_xmit_timers()<br />
to &#39;stop&#39; the timers.<br />
<br />
inet_csk_clear_xmit_timers() can be called from any context,<br />
including when socket lock is held.<br />
This is the reason it uses sk_stop_timer(), aka del_timer().<br />
This means that ongoing timers might finish much later.<br />
<br />
For user sockets, this is fine because each running timer<br />
holds a reference on the socket, and the user socket holds<br />
a reference on the netns.<br />
<br />
For kernel sockets, we risk that the netns is freed before<br />
timer can complete, because kernel sockets do not hold<br />
reference on the netns.<br />
<br />
This patch adds inet_csk_clear_xmit_timers_sync() function<br />
that using sk_stop_timer_sync() to make sure all timers<br />
are terminated before the kernel socket is released.<br />
Modules using kernel sockets close them in their netns exit()<br />
handler.<br />
<br />
Also add sock_not_owned_by_me() helper to get LOCKDEP<br />
support : inet_csk_clear_xmit_timers_sync() must not be called<br />
while socket lock is held.<br />
<br />
It is very possible we can revert in the future commit<br />
3a58f13a881e ("net: rds: acquire refcount on TCP sockets")<br />
which attempted to solve the issue in rds only.<br />
(net/smc/af_smc.c and net/mptcp/subflow.c have similar code)<br />
<br />
We probably can remove the check_net() tests from<br />
tcp_out_of_resources() and __tcp_close() in the future.
Impact
Base Score 3.x
5.80
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.2 (including) | 4.19.312 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.274 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.215 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.154 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.85 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.26 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.8.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/151c9c724d05d5b0dd8acd3e11cb69ef1f2dbada
- https://git.kernel.org/stable/c/2e43d8eba6edd1cf05a3a20fdd77688fa7ec16a4
- https://git.kernel.org/stable/c/44e62f5d35678686734afd47c6a421ad30772e7f
- https://git.kernel.org/stable/c/899265c1389fe022802aae73dbf13ee08837a35a
- https://git.kernel.org/stable/c/91b243de910a9ac8476d40238ab3dbfeedd5b7de
- https://git.kernel.org/stable/c/93f0133b9d589cc6e865f254ad9be3e9d8133f50
- https://git.kernel.org/stable/c/c1ae4d1e76eacddaacb958b67cd942082f800c87
- https://git.kernel.org/stable/c/e3e27d2b446deb1f643758a0c4731f5c22492810
- https://git.kernel.org/stable/c/151c9c724d05d5b0dd8acd3e11cb69ef1f2dbada
- https://git.kernel.org/stable/c/2e43d8eba6edd1cf05a3a20fdd77688fa7ec16a4
- https://git.kernel.org/stable/c/44e62f5d35678686734afd47c6a421ad30772e7f
- https://git.kernel.org/stable/c/899265c1389fe022802aae73dbf13ee08837a35a
- https://git.kernel.org/stable/c/91b243de910a9ac8476d40238ab3dbfeedd5b7de
- https://git.kernel.org/stable/c/93f0133b9d589cc6e865f254ad9be3e9d8133f50
- https://git.kernel.org/stable/c/c1ae4d1e76eacddaacb958b67cd942082f800c87
- https://git.kernel.org/stable/c/e3e27d2b446deb1f643758a0c4731f5c22492810
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html



