[syzbot] [afs?] [net?] kernel BUG in rxrpc_destroy_all_connections (2)

8 views
Skip to first unread message

syzbot

unread,
Aug 5, 2026, 8:12:39 PMAug 5
to da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: c21bb4193868 Merge tag 'for_linus' of git://git.kernel.org..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1126cbb9580000
kernel config: https://syzkaller.appspot.com/x/.config?x=b7079b368dcec295
dashboard link: https://syzkaller.appspot.com/bug?extid=89001660f14fb7684c83
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/9f5212fcea24/disk-c21bb419.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/9a166d81a082/vmlinux-c21bb419.xz
kernel image: https://storage.googleapis.com/syzbot-assets/b36458f10930/bzImage-c21bb419.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+890016...@syzkaller.appspotmail.com

tipc: Left network mode
rxrpc: Assertion failed
------------[ cut here ]------------
kernel BUG at net/rxrpc/conn_object.c:488!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 1040 Comm: kworker/u8:6 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Workqueue: netns cleanup_net
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 ca 82 98 00 48 c7 c7 80 12 3a 8d e8 9e 79 b0 ff 90 0f 0b e8 b6 82 98 00 48 c7 c7 80 12 3a 8d e8 8a 79 b0 ff 90 <0f> 0b e8 a2 82 98 00 49 63 d6 48 83 ce ff 48 c7 c7 20 7c de 90 e8
RSP: 0018:ffffc9000519f990 EFLAGS: 00010282
RAX: 0000000000000017 RBX: ffff888029c40000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81e89fd9 RDI: fffff52000a33f23
RBP: ffff888029c40064 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000080000000 R11: 0000000000000000 R12: 1ffff92000a33f34
R13: ffff888029c40078 R14: ffff888029c40088 R15: ffff888029c40088
FS: 0000000000000000(0000) GS:ffff888123dd9000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f6c701e4b45 CR3: 0000000057648000 CR4: 0000000000350ef0
Call Trace:
<TASK>
rxrpc_exit_net+0x7b/0xc0 net/rxrpc/net_ns.c:113
ops_exit_list net/core/net_namespace.c:199 [inline]
ops_undo_list+0x2ee/0xab0 net/core/net_namespace.c:252
cleanup_net+0x499/0x920 net/core/net_namespace.c:702
process_one_work+0xa23/0x1940 kernel/workqueue.c:3322
process_scheduled_works kernel/workqueue.c:3405 [inline]
worker_thread+0x5ef/0xe50 kernel/workqueue.c:3486
kthread+0x370/0x450 kernel/kthread.c:436
ret_from_fork+0x72b/0xd50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 ca 82 98 00 48 c7 c7 80 12 3a 8d e8 9e 79 b0 ff 90 0f 0b e8 b6 82 98 00 48 c7 c7 80 12 3a 8d e8 8a 79 b0 ff 90 <0f> 0b e8 a2 82 98 00 49 63 d6 48 83 ce ff 48 c7 c7 20 7c de 90 e8
RSP: 0018:ffffc9000519f990 EFLAGS: 00010282
RAX: 0000000000000017 RBX: ffff888029c40000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81e89fd9 RDI: fffff52000a33f23
RBP: ffff888029c40064 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000080000000 R11: 0000000000000000 R12: 1ffff92000a33f34
R13: ffff888029c40078 R14: ffff888029c40088 R15: ffff888029c40088
FS: 0000000000000000(0000) GS:ffff888123dd9000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000558cf9997138 CR3: 000000000e994000 CR4: 0000000000350ef0


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Sep 22, 2026, 10:57:47 AM (5 days ago) Sep 22
to da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: f0100363d8c3 Merge tag 'xfs-fixes-7.3-rc5' of gitolite.ker..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=17660c5e580000
kernel config: https://syzkaller.appspot.com/x/.config?x=7d012d9c67977ee4
dashboard link: https://syzkaller.appspot.com/bug?extid=89001660f14fb7684c83
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11ecb805580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=16e6f525580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-f0100363.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/57240753f5ee/vmlinux-f0100363.xz
kernel image: https://storage.googleapis.com/syzbot-assets/2930b9a97546/bzImage-f0100363.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+890016...@syzkaller.appspotmail.com

netdevsim netdevsim0 netdevsim3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 netdevsim2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 netdevsim1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 netdevsim0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
bridge_slave_1: left allmulticast mode
bridge_slave_1: left promiscuous mode
bridge0: port 2(bridge_slave_1) entered disabled state
bridge_slave_0: left allmulticast mode
bridge_slave_0: left promiscuous mode
bridge0: port 1(bridge_slave_0) entered disabled state
bond0 (unregistering): (slave bond_slave_0): Releasing backup interface
bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
bond0 (unregistering): Released all slaves
rxrpc: Assertion failed
------------[ cut here ]------------
kernel BUG at net/rxrpc/conn_object.c:488!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 2 UID: 0 PID: 5766 Comm: kworker/u32:3 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: netns cleanup_net
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 39 99 99 00 48 c7 c7 60 6a 5d 8d e8 3d c0 af ff 90 0f 0b e8 25 99 99 00 48 c7 c7 60 6a 5d 8d e8 29 c0 af ff 90 <0f> 0b e8 11 99 99 00 49 63 d6 48 83 ce ff 48 c7 c7 40 f3 00 91 e8
RSP: 0018:ffffc90003f27970 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff8880394c0000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea1579 RDI: fffff520007e4f1f
RBP: ffff8880394c0064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: 1ffff920007e4f30
R13: ffff8880394c0078 R14: ffff8880394c0088 R15: ffff8880394c0088
FS: 0000000000000000(0000) GS:ffff8880d5d53000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055a4b15ca000 CR3: 000000003c5bd000 CR4: 0000000000352ef0
Call Trace:
<TASK>
rxrpc_exit_net+0x7b/0xc0 net/rxrpc/net_ns.c:113
ops_exit_list net/core/net_namespace.c:200 [inline]
ops_undo_list+0x2ee/0xab0 net/core/net_namespace.c:253
cleanup_net+0x499/0x920 net/core/net_namespace.c:706
process_one_work+0xac7/0x1b10 kernel/workqueue.c:3396
process_scheduled_works kernel/workqueue.c:3479 [inline]
worker_thread+0x5ef/0xe50 kernel/workqueue.c:3560
kthread+0x373/0x450 kernel/kthread.c:436
ret_from_fork+0x730/0xd60 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 39 99 99 00 48 c7 c7 60 6a 5d 8d e8 3d c0 af ff 90 0f 0b e8 25 99 99 00 48 c7 c7 60 6a 5d 8d e8 29 c0 af ff 90 <0f> 0b e8 11 99 99 00 49 63 d6 48 83 ce ff 48 c7 c7 40 f3 00 91 e8
RSP: 0018:ffffc90003f27970 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff8880394c0000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea1579 RDI: fffff520007e4f1f
RBP: ffff8880394c0064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: 1ffff920007e4f30
R13: ffff8880394c0078 R14: ffff8880394c0088 R15: ffff8880394c0088
FS: 0000000000000000(0000) GS:ffff8880d5d53000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055a4b15ca000 CR3: 000000003c5bd000 CR4: 0000000000352ef0


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

Jose A. Perez de Azpillaga

unread,
3:41 AM (14 hours ago) 3:41 AM
to syzbot, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git a7bfaba4823e

diff --git a/net/rxrpc/conn_event.c b/net/rxrpc/conn_event.c
index 611c790bc6d0..111f0844b0d6 100644
--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -272,8 +272,19 @@ static int rxrpc_process_event(struct rxrpc_connection *conn,
bool secured = false;
int ret;

- if (conn->state == RXRPC_CONN_ABORTED)
+ if (conn->state == RXRPC_CONN_ABORTED) {
+ /* A CHALLENGE packet queued for processing carries a ref on the
+ * connection (see rxrpc_post_challenge()). That ref has to be
+ * dropped here because the caller frees the skb as soon as we
+ * return.
+ */
+ if (sp->hdr.type == RXRPC_PACKET_TYPE_CHALLENGE &&
+ sp->chall.conn) {
+ rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
+ sp->chall.conn = NULL;
+ }
return -ECONNABORTED;
+ }

_enter("{%d},{%u,%%%u},", conn->debug_id, sp->hdr.type, sp->hdr.serial);

syzbot

unread,
3:42 AM (14 hours ago) 3:42 AM
to azp...@gmail.com, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to apply patch:
error: corrupt patch at line 25



Tested on:

commit: a7bfaba4 ipv6: fix prefix route expiry in modify_prefi..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
patch: https://syzkaller.appspot.com/x/patch.diff?x=134df2c9580000

Jose A. Perez de Azpillaga

unread,
3:48 AM (14 hours ago) 3:48 AM
to syzbot, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
---
net/rxrpc/conn_event.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
--
2.55.0

syzbot

unread,
3:50 AM (14 hours ago) 3:50 AM
to azp...@gmail.com, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com

Jose A. Perez de Azpillaga

unread,
4:14 AM (14 hours ago) 4:14 AM
to syzbot, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
I just don't understand why it is failing... :(
diff --git a/net/rxrpc/conn_event.c b/net/rxrpc/conn_event.c
index 611c790bc6d0..111f0844b0d6 100644
--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -273,6 +273,17 @@ static int rxrpc_process_event(struct rxrpc_connection *conn,

syzbot

unread,
4:29 AM (14 hours ago) 4:29 AM
to azp...@gmail.com, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
kernel BUG in rxrpc_destroy_all_connections

bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
bond0 (unregistering): Released all slaves
rxrpc: Assertion failed
------------[ cut here ]------------
kernel BUG at net/rxrpc/conn_object.c:488!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 2 UID: 0 PID: 13 Comm: kworker/u32:1 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: netns cleanup_net
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 6e 97 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a 97 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 97 99 00 49 63 d6 48 83 ce ff 48 c7 c7 40 02 01 91 e8
RSP: 0018:ffffc90000107970 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888053d70000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea1579 RDI: fffff52000020f1f
RBP: ffff888053d70064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: 1ffff92000020f30
R13: ffff888053d70078 R14: ffff888053d70088 R15: ffff888053d70088
FS: 0000000000000000(0000) GS:ffff8880d5d52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005562f0adc000 CR3: 000000002d8eb000 CR4: 0000000000352ef0
Call Trace:
<TASK>
rxrpc_exit_net+0x7b/0xc0 net/rxrpc/net_ns.c:113
ops_exit_list net/core/net_namespace.c:200 [inline]
ops_undo_list+0x2ee/0xab0 net/core/net_namespace.c:253
cleanup_net+0x499/0x920 net/core/net_namespace.c:706
process_one_work+0xac7/0x1b10 kernel/workqueue.c:3396
process_scheduled_works kernel/workqueue.c:3479 [inline]
worker_thread+0x5ef/0xe50 kernel/workqueue.c:3560
kthread+0x373/0x450 kernel/kthread.c:436
ret_from_fork+0x730/0xd60 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x14 net/rxrpc/conn_object.c:488
Code: ff 90 0f 0b e8 6e 97 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a 97 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 97 99 00 49 63 d6 48 83 ce ff 48 c7 c7 40 02 01 91 e8
RSP: 0018:ffffc90000107970 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888053d70000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea1579 RDI: fffff52000020f1f
RBP: ffff888053d70064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: 1ffff92000020f30
R13: ffff888053d70078 R14: ffff888053d70088 R15: ffff888053d70088
FS: 0000000000000000(0000) GS:ffff8880d5d52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005562f0adc000 CR3: 000000002d8eb000 CR4: 0000000000352ef0


Tested on:

commit: a7bfaba4 ipv6: fix prefix route expiry in modify_prefi..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
console output: https://syzkaller.appspot.com/x/log.txt?x=16e8fd25580000
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=159dda05580000

Jose A. Perez de Azpillaga

unread,
7:09 AM (11 hours ago) 7:09 AM
to syzbot, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
lets see if this works.

#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git a7bfaba4823e

diff --git a/net/rxrpc/conn_event.c b/net/rxrpc/conn_event.c
index 611c790bc6d0..111f0844b0d6 100644
--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -274,4 +274,15 @@ static int rxrpc_process_event(struct rxrpc_connection *conn,

- if (conn->state == RXRPC_CONN_ABORTED)
+ if (conn->state == RXRPC_CONN_ABORTED) {
+ /* A CHALLENGE packet queued for processing carries a ref on the
+ * connection (see rxrpc_post_challenge()). That ref has to be
+ * dropped here because the caller frees the skb as soon as we
+ * return.
+ */
+ if (sp->hdr.type == RXRPC_PACKET_TYPE_CHALLENGE &&
+ sp->chall.conn) {
+ rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
+ sp->chall.conn = NULL;
+ }
return -ECONNABORTED;
+ }

diff --git a/net/rxrpc/conn_object.c b/net/rxrpc/conn_object.c
index 0ece717db0f8..1295f3de3725 100644
--- a/net/rxrpc/conn_object.c
+++ b/net/rxrpc/conn_object.c
@@ -487,2 +487,18 @@ void rxrpc_destroy_all_connections(struct rxrpc_net *rxnet)

+ if (!list_empty(&rxnet->conn_proc_list)) {
+ struct rxrpc_connection *c;
+
+ pr_err("AF_RXRPC: conn_proc_list not empty\n");
+ write_lock(&rxnet->conn_lock);
+ list_for_each_entry(c, &rxnet->conn_proc_list, proc_link)
+ pr_err("AF_RXRPC: proc conn %x cid %x state %d ref %d act %d flags %lx cache_empty %d calls %px %px %px %px bundle %px\n",
+ c->debug_id, c->proto.cid, c->state,
+ refcount_read(&c->ref), c->act_chans, c->flags,
+ list_empty(&c->cache_link),
+ c->channels[0].call, c->channels[1].call,
+ c->channels[2].call, c->channels[3].call,
+ c->bundle);
+ write_unlock(&rxnet->conn_lock);
+ }
+
ASSERT(list_empty(&rxnet->conn_proc_list));

syzbot

unread,
7:23 AM (11 hours ago) 7:23 AM
to azp...@gmail.com, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
kernel BUG in rxrpc_destroy_all_connections

rxrpc: AF_RXRPC: proc conn 560 cid f29e6b44 state 7 ref 1 act 0 flags 2 cache_empty 1 calls 0000000000000000 0000000000000000 0000000000000000 0000000000000000 bundle ffff88802ce96b00
rxrpc: Assertion failed
------------[ cut here ]------------
kernel BUG at net/rxrpc/conn_object.c:504!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 1 UID: 0 PID: 5781 Comm: kworker/u32:3 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: netns cleanup_net
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x34f net/rxrpc/conn_object.c:504
Code: ff 90 0f 0b e8 6e a7 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a a7 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 a7 99 00 48 c7 c7 a0 77 5d 8d e8 4a be af ff 4c 89 e7
RSP: 0018:ffffc90003be7928 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888036dd4000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea2579 RDI: fffff5200077cf16
RBP: ffff888036dd4064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: ffff888036dd4098
R13: ffff888036dd3e70 R14: ffff888036dd4078 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880d5c52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f67bacc6e9c CR3: 000000002647e000 CR4: 0000000000352ef0
Call Trace:
<TASK>
rxrpc_exit_net+0x7b/0xc0 net/rxrpc/net_ns.c:113
ops_exit_list net/core/net_namespace.c:200 [inline]
ops_undo_list+0x2ee/0xab0 net/core/net_namespace.c:253
cleanup_net+0x499/0x920 net/core/net_namespace.c:706
process_one_work+0xac7/0x1b10 kernel/workqueue.c:3396
process_scheduled_works kernel/workqueue.c:3479 [inline]
worker_thread+0x5ef/0xe50 kernel/workqueue.c:3560
kthread+0x373/0x450 kernel/kthread.c:436
ret_from_fork+0x730/0xd60 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x34f net/rxrpc/conn_object.c:504
Code: ff 90 0f 0b e8 6e a7 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a a7 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 a7 99 00 48 c7 c7 a0 77 5d 8d e8 4a be af ff 4c 89 e7
RSP: 0018:ffffc90003be7928 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888036dd4000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea2579 RDI: fffff5200077cf16
RBP: ffff888036dd4064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: ffff888036dd4098
R13: ffff888036dd3e70 R14: ffff888036dd4078 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880d5c52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f67bacc6e9c CR3: 000000002647e000 CR4: 0000000000352ef0


Tested on:

commit: a7bfaba4 ipv6: fix prefix route expiry in modify_prefi..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
console output: https://syzkaller.appspot.com/x/log.txt?x=17888605580000
kernel config: https://syzkaller.appspot.com/x/.config?x=7d012d9c67977ee4
dashboard link: https://syzkaller.appspot.com/bug?extid=89001660f14fb7684c83
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=12908605580000

Jose A. Perez de Azpillaga

unread,
8:04 AM (10 hours ago) 8:04 AM
to syzbot, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
index 865f05fe37ab..2ecfd58cd566 100644
--- a/net/rxrpc/ar-internal.h
+++ b/net/rxrpc/ar-internal.h
@@ -1205,2 +1205,3 @@ void rxrpc_disconnect_call(struct rxrpc_call *);
void rxrpc_kill_client_conn(struct rxrpc_connection *);
+void rxrpc_discard_unactivated_client_conn(struct rxrpc_connection *);
void rxrpc_queue_conn(struct rxrpc_connection *, enum rxrpc_conn_trace);
diff --git a/net/rxrpc/conn_client.c b/net/rxrpc/conn_client.c
index 48519f0de185..8ccf69cc973f 100644
--- a/net/rxrpc/conn_client.c
+++ b/net/rxrpc/conn_client.c
@@ -697,2 +697,13 @@ static void rxrpc_unbundle_conn(struct rxrpc_connection *conn)

+void rxrpc_discard_unactivated_client_conn(struct rxrpc_connection *conn)
+{
+ if (!rxrpc_conn_is_client(conn) || !conn->bundle)
+ return;
+ if (conn->act_chans || !list_empty(&conn->cache_link))
+ return;
+
+ _debug("C=%x never activated", conn->debug_id);
+ rxrpc_unbundle_conn(conn);
+}
+
/*
diff --git a/net/rxrpc/conn_event.c b/net/rxrpc/conn_event.c
index 611c790bc6d0..a30cbaa8a48b 100644
--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -40,2 +40,5 @@ static bool rxrpc_set_conn_aborted(struct rxrpc_connection *conn,
spin_unlock_irq(&conn->state_lock);
+
+ if (aborted)
+ rxrpc_discard_unactivated_client_conn(conn);
}
@@ -274,4 +277,10 @@ static int rxrpc_process_event(struct rxrpc_connection *conn,

- if (conn->state == RXRPC_CONN_ABORTED)
+ if (conn->state == RXRPC_CONN_ABORTED) {
+ if (sp->hdr.type == RXRPC_PACKET_TYPE_CHALLENGE &&
+ sp->chall.conn) {
+ rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
+ sp->chall.conn = NULL;
+ }
return -ECONNABORTED;
+ }

diff --git a/net/rxrpc/conn_object.c b/net/rxrpc/conn_object.c
index 0ece717db0f8..6d453b9a9457 100644
--- a/net/rxrpc/conn_object.c
+++ b/net/rxrpc/conn_object.c
@@ -251,2 +251,3 @@ struct rxrpc_connection *rxrpc_get_connection(struct rxrpc_connection *conn,
__refcount_inc(&conn->ref, &r);
+ pr_err("AF_RXRPC: conn %x GET why=%d r=%d\n", conn->debug_id, why, r + 1);
trace_rxrpc_conn(conn->debug_id, r + 1, why);
@@ -367,2 +368,3 @@ void rxrpc_put_connection(struct rxrpc_connection *conn,
dead = __refcount_dec_and_test(&conn->ref, &r);
+ pr_err("AF_RXRPC: conn %x PUT why=%d r=%d dead=%d\n", debug_id, why, r - 1, dead);
trace_rxrpc_conn(debug_id, r - 1, why);
@@ -487,2 +489,18 @@ void rxrpc_destroy_all_connections(struct rxrpc_net *rxnet)

syzbot

unread,
8:19 AM (10 hours ago) 8:19 AM
to azp...@gmail.com, da...@davemloft.net, dhow...@redhat.com, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linu...@lists.infradead.org, linux-...@vger.kernel.org, marc....@auristor.com, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
kernel BUG in rxrpc_destroy_all_connections

rxrpc: AF_RXRPC: proc conn 7f4 cid fba44d28 state 7 ref 1 act 0 flags 2 cache_empty 1 calls 0000000000000000 0000000000000000 0000000000000000 0000000000000000 bundle ffff88802d3d1000
rxrpc: Assertion failed
------------[ cut here ]------------
kernel BUG at net/rxrpc/conn_object.c:506!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 3 UID: 0 PID: 5762 Comm: kworker/u32:2 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Workqueue: netns cleanup_net
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x34f net/rxrpc/conn_object.c:506
Code: ff 90 0f 0b e8 6e a7 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a a7 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 a7 99 00 48 c7 c7 60 78 5d 8d e8 4a be af ff 4c 89 e7
RSP: 0018:ffffc9000443f928 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888054ab4000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea2579 RDI: fffff52000887f16
RBP: ffff888054ab4064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: ffff888054ab4098
R13: ffff888054ab3e70 R14: ffff888054ab4078 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880d5e52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fe0fcd74e9c CR3: 0000000035950000 CR4: 0000000000352ef0
Call Trace:
<TASK>
rxrpc_exit_net+0x7b/0xc0 net/rxrpc/net_ns.c:113
ops_exit_list net/core/net_namespace.c:200 [inline]
ops_undo_list+0x2ee/0xab0 net/core/net_namespace.c:253
cleanup_net+0x499/0x920 net/core/net_namespace.c:706
process_one_work+0xac7/0x1b10 kernel/workqueue.c:3396
process_scheduled_works kernel/workqueue.c:3479 [inline]
worker_thread+0x5ef/0xe50 kernel/workqueue.c:3560
kthread+0x373/0x450 kernel/kthread.c:436
ret_from_fork+0x730/0xd60 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rxrpc_destroy_all_connections.cold+0x12/0x34f net/rxrpc/conn_object.c:506
Code: ff 90 0f 0b e8 6e a7 99 00 48 c7 c7 20 73 5d 8d e8 72 be af ff 90 0f 0b e8 5a a7 99 00 48 c7 c7 20 73 5d 8d e8 5e be af ff 90 <0f> 0b e8 46 a7 99 00 48 c7 c7 60 78 5d 8d e8 4a be af ff 4c 89 e7
RSP: 0018:ffffc9000443f928 EFLAGS: 00010286
RAX: 0000000000000017 RBX: ffff888054ab4000 RCX: 0000000000000000
RDX: 0000000000000017 RSI: ffffffff81ea2579 RDI: fffff52000887f16
RBP: ffff888054ab4064 R08: 0000000000000007 R09: 0000000000000000
R10: 8000000000000000 R11: 0000000000000001 R12: ffff888054ab4098
R13: ffff888054ab3e70 R14: ffff888054ab4078 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880d5e52000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fe0fcd74e9c CR3: 0000000035950000 CR4: 0000000000352ef0


Tested on:

commit: a7bfaba4 ipv6: fix prefix route expiry in modify_prefi..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
console output: https://syzkaller.appspot.com/x/log.txt?x=13e06605580000
kernel config: https://syzkaller.appspot.com/x/.config?x=7d012d9c67977ee4
dashboard link: https://syzkaller.appspot.com/bug?extid=89001660f14fb7684c83
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=124d5315580000

Reply all
Reply to author
Forward
0 new messages