]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
tcp: Fix out-of-bounds access for twsk in tcp_ao_established_key().
authorKuniyuki Iwashima <kuniyu@google.com>
Fri, 8 May 2026 12:08:46 +0000 (12:08 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 12 May 2026 00:50:15 +0000 (17:50 -0700)
commit03cb001ef87b3f8d859cf7f96329acf3d6235d29
tree8a5b56e7154b733878d40c2a906c5fe440871547
parent24a08d7d6218d60c033015cf4870b6096446e734
tcp: Fix out-of-bounds access for twsk in tcp_ao_established_key().

lockdep_sock_is_held() was added in tcp_ao_established_key()
by the cited commit.

It can be called from tcp_v[46]_timewait_ack() with twsk.

Since it does not have sk->sk_lock, the lockdep annotation
results in out-of-bound access.

  $ pahole -C tcp_timewait_sock vmlinux | grep size
   /* size: 288, cachelines: 5, members: 8 */
  $ pahole -C sock vmlinux | grep sk_lock
   socket_lock_t              sk_lock;              /*   440   192 */

Let's not use lockdep_sock_is_held() for TCP_TIME_WAIT.

Fixes: 6b2d11e2d8fc ("net/tcp: Add missing lockdep annotations for TCP-AO hlist traversals")
Reported-by: Damiano Melotti <melotti@google.com>
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260508120853.4098365-1-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/tcp_ao.c