net/ipv4/tcp.c | 18 ++++++++++++++++++ net/ipv4/tcp_ao.c | 5 ++--- net/ipv4/tcp_ipv4.c | 29 ++--------------------------- net/ipv4/tcp_minisocks.c | 19 +++++-------------- 4 files changed, 27 insertions(+), 44 deletions(-)
On one side a minor/cosmetic issue, especially nowadays when TCP-AO/TCP-MD5 signature verification failures aren't logged to dmesg. Yet, I think worth addressing for two reasons: - unsigned RST gets ignored by the peer and the connection is alive for longer (keep-alive interval) - netstat counters increase and trace events report that trusted BGP peer is sending unsigned/incorrectly signed segments, which can ring alarm on monitoring. Signed-off-by: Dmitry Safonov <dima@arista.com> --- Dmitry Safonov (2): tcp: Destroy TCP-AO, TCP-MD5 keys in .sk_destruct() tcp: Free TCP-AO/TCP-MD5 info/keys without RCU net/ipv4/tcp.c | 18 ++++++++++++++++++ net/ipv4/tcp_ao.c | 5 ++--- net/ipv4/tcp_ipv4.c | 29 ++--------------------------- net/ipv4/tcp_minisocks.c | 19 +++++-------------- 4 files changed, 27 insertions(+), 44 deletions(-) --- base-commit: a7bd72158063740212344fad5d99dcef45bc70d6 change-id: 20250822-b4-tcp-ao-md5-rst-finwait2-e632b4d8f58d Best regards, -- Dmitry Safonov <dima@arista.com>
syzbot ci has tested the following series [v1] tcp: Destroy TCP-AO, TCP-MD5 keys in .sk_destruct() https://lore.kernel.org/all/20250822-b4-tcp-ao-md5-rst-finwait2-v1-0-25825d085dcb@arista.com * [PATCH net-next 1/2] tcp: Destroy TCP-AO, TCP-MD5 keys in .sk_destruct() * [PATCH net-next 2/2] tcp: Free TCP-AO/TCP-MD5 info/keys without RCU and found the following issue: WARNING in inet_sock_destruct Full report is available here: https://ci.syzbot.org/series/4e53fc18-79b4-47d6-87c4-89e499e12879 *** WARNING in inet_sock_destruct tree: net-next URL: https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git base: a9af709fda7edafa17e072bffe610d9e7ed7a5df arch: amd64 compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 config: https://ci.syzbot.org/builds/d6e1c7cd-df1b-4192-bc2d-a2db69987793/config C repro: https://ci.syzbot.org/findings/62fd81c8-8c8c-49fe-aa87-8e1418bcc053/c_repro syz repro: https://ci.syzbot.org/findings/62fd81c8-8c8c-49fe-aa87-8e1418bcc053/syz_repro ------------[ cut here ]------------ WARNING: CPU: 0 PID: 6012 at net/ipv4/af_inet.c:153 inet_sock_destruct+0x5f9/0x730 net/ipv4/af_inet.c:153 Modules linked in: CPU: 0 UID: 0 PID: 6012 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:inet_sock_destruct+0x5f9/0x730 net/ipv4/af_inet.c:153 Code: 00 41 0f b6 74 24 12 48 c7 c7 20 91 9e 8c 4c 89 e2 48 83 c4 20 5b 41 5c 41 5d 41 5e 41 5f 5d e9 dd 38 24 f7 e8 68 44 bc f7 90 <0f> 0b 90 e9 62 fe ff ff e8 5a 44 bc f7 90 0f 0b 90 e9 95 fe ff ff RSP: 0018:ffffc90003a0fc58 EFLAGS: 00010293 RAX: ffffffff8a0366c8 RBX: dffffc0000000000 RCX: ffff888106891cc0 RDX: 0000000000000000 RSI: 00000000000003c0 RDI: 0000000000000000 RBP: 00000000000003c0 R08: ffff88803bb429c3 R09: 1ffff11007768538 R10: dffffc0000000000 R11: ffffed1007768539 R12: ffff88803bb42880 R13: dffffc0000000000 R14: ffff88803bb429c0 R15: 1ffff11007768512 FS: 00005555690ff500(0000) GS:ffff8880b861a000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000200000f65000 CR3: 0000000106d3a000 CR4: 00000000000006f0 Call Trace: <TASK> __sk_destruct+0x89/0x660 net/core/sock.c:2339 inet_release+0x144/0x190 net/ipv4/af_inet.c:435 __sock_release net/socket.c:649 [inline] sock_close+0xc3/0x240 net/socket.c:1439 __fput+0x44c/0xa70 fs/file_table.c:468 task_work_run+0x1d4/0x260 kernel/task_work.c:227 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] exit_to_user_mode_loop+0xec/0x110 kernel/entry/common.c:43 exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline] syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline] do_syscall_64+0x2bd/0x3b0 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa54ab8ebe9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffc0978c268 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4 RAX: 0000000000000000 RBX: 000000000000ce2e RCX: 00007fa54ab8ebe9 RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003 RBP: 0000000000000000 R08: 0000000000000001 R09: 000000040978c55f R10: 0000001b30220000 R11: 0000000000000246 R12: 00007fa54adb5fac R13: 00007fa54adb5fa0 R14: ffffffffffffffff R15: 0000000000000006 </TASK> *** If these findings have caused you to resend the series or submit a separate fix, please add the following tag to your commit message: Tested-by: syzbot@syzkaller.appspotmail.com --- This report is generated by a bot. It may contain errors. syzbot ci engineers can be reached at syzkaller@googlegroups.com.
© 2016 - 2025 Red Hat, Inc.