Description
In the Linux kernel, the following vulnerability has been resolved: tipc: fix divide-by-zero in tipc_sk_filter_connect() A user can set conn_timeout to any value via setsockopt(TIPC_CONN_TIMEOUT), including values less than 4. When a SYN is rejected with TIPC_ERR_OVERLOAD and the retry path in tipc_sk_filter_connect() executes: delay %= (tsk->conn_timeout / 4); If conn_timeout is in the range [0, 3], the integer division yields 0, and the modulo operation triggers a divide-by-zero exception, causing a kernel oops/panic. Fix this by clamping conn_timeout to a minimum of 4 at the point of use in tipc_sk_filter_connect(). Oops: divide error: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 119 Comm: poc-F144 Not tainted 7.0.0-rc2+ RIP: 0010:tipc_sk_filter_rcv (net/tipc/socket.c:2236 net/tipc/socket.c:2362) Call Trace: tipc_sk_backlog_rcv (include/linux/instrumented.h:82 include/linux/atomic/atomic-instrumented.h:32 include/net/sock.h:2357 net/tipc/socket.c:2406) __release_sock (include/net/sock.h:1185 net/core/sock.c:3213) release_sock (net/core/sock.c:3797) tipc_connect (net/tipc/socket.c:2570) __sys_connect (include/linux/file.h:62 include/linux/file.h:83 net/socket.c:2098)
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
6787927475e52f6933e3affce365dabb2aa2fadf to < 600feb0a66a98c6b7f6f02b5f3612e75f9b8540faffected6787927475e52f6933e3affce365dabb2aa2fadf to < 3bc9998041076ee05d3f312a22cee6b2ca35527faffected6787927475e52f6933e3affce365dabb2aa2fadf to < 579956f9f297eb1b6a5d24de313f3acccee1f9d5affected6787927475e52f6933e3affce365dabb2aa2fadf to < a360d3815aae1f00dd71b7714a846482e85cc1f7affected6787927475e52f6933e3affce365dabb2aa2fadf to < c2ebfbe63deb7bfd4dc2532bae62a7ed67713272affected6787927475e52f6933e3affce365dabb2aa2fadf to < 2754e7b3d64748643df867d1ea6fec522914b635affected6787927475e52f6933e3affce365dabb2aa2fadf to < 338c5edeb6ae3f12a4b84dff9d71f6f7f8c202c3affected6787927475e52f6933e3affce365dabb2aa2fadf to < 6c5a9baa15de240e747263aba435a0951da8d8d2affected
Linux Linux
Default version status: affected
4.20affected0 to < 4.20unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.19 to ≤ 6.18.*unaffected6.19.9 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/600feb0a66a98c6b7f6f02b5f3612e75f9b8540f ↗
- https://git.kernel.org/stable/c/3bc9998041076ee05d3f312a22cee6b2ca35527f ↗
- https://git.kernel.org/stable/c/579956f9f297eb1b6a5d24de313f3acccee1f9d5 ↗
- https://git.kernel.org/stable/c/a360d3815aae1f00dd71b7714a846482e85cc1f7 ↗
- https://git.kernel.org/stable/c/c2ebfbe63deb7bfd4dc2532bae62a7ed67713272 ↗
- https://git.kernel.org/stable/c/2754e7b3d64748643df867d1ea6fec522914b635 ↗
- https://git.kernel.org/stable/c/338c5edeb6ae3f12a4b84dff9d71f6f7f8c202c3 ↗
- https://git.kernel.org/stable/c/6c5a9baa15de240e747263aba435a0951da8d8d2 ↗