All of lore.kernel.org
 help / color / mirror / Atom feed
From: syzbot <syzbot+622de7e1f18a30fc404a@syzkaller.appspotmail.com>
To: davem@davemloft.net, edumazet@kernel.org,
	herbert@gondor.apana.org.au,  horms@kernel.org, kuba@kernel.org,
	linux-kernel@vger.kernel.org,  netdev@vger.kernel.org,
	pabeni@redhat.com, steffen.klassert@secunet.com,
	 syzkaller-bugs@googlegroups.com
Subject: [syzbot] [net?] WARNING in xfrm_output_resume
Date: Fri, 13 Nov 2026 16:22:59 -0800	[thread overview]
Message-ID: <6af7a9e3.ff6dfe28.557e.002d.GAE@google.com> (raw)

Hello,

syzbot found the following issue on:

HEAD commit:    7475ea8b5861 Linux 7.4-rc2
git tree:       upstream
console+strace: https://syzkaller.appspot.com/x/log.txt?x=177f9fe1580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=d44b06612b68f56
dashboard link: https://syzkaller.appspot.com/bug?extid=622de7e1f18a30fc404a
compiler:       Debian clang version 22.1.8 (1~deb13u4), Debian LLD 22.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1338e03d580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11877f8d580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/1dc544ec8515/disk-7475ea8b.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/6fb265017368/vmlinux-7475ea8b.xz
kernel image: https://storage.googleapis.com/syzbot-assets/5f78347f28bf/bzImage-7475ea8b.xz

AI-generated root cause summary:
IP-TFS (net/xfrm/xfrm_iptfs.c) registers iptfs_output_collect() as the
dst->output handler for XFRM IPTFS mode to aggregate outgoing packets onto
xtfs->queue for delayed transmission via an hrtimer (iptfs_delay_timer()).
Packets delivered to dst->output can carry an unrefcounted, RCU-protected
destination entry (SKB_DST_NOREF). Because iptfs_output_collect() does not force
a refcount on the dst entry with skb_dst_force() before enqueuing, the SKBs
retain an unpinned dst pointer after the caller's RCU read-side critical section
completes. When iptfs_delay_timer() subsequently dequeues and transmits the
packet via xfrm_output() in softirq context without rcu_read_lock(),
xfrm_output_one() invokes skb_dst_force(), triggering
WARN_ON(!rcu_read_lock_held()) and risking a use-after-free if the dst_entry was
freed during the queuing delay.

full analysis:  https://syzkaller.appspot.com/x/ai_root_cause?x=622de7e1f18a30fc404a

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

------------[ cut here ]------------
!rcu_read_lock_held()
WARNING: ./include/net/dst.h:326 at skb_dst_force include/net/dst.h:326 [inline], CPU#1: ksoftirqd/1/24
WARNING: ./include/net/dst.h:326 at xfrm_output_one net/xfrm/xfrm_output.c:549 [inline], CPU#1: ksoftirqd/1/24
WARNING: ./include/net/dst.h:326 at xfrm_output_resume+0x41d9/0x64e0 net/xfrm/xfrm_output.c:597, CPU#1: ksoftirqd/1/24
Modules linked in:
CPU: 1 UID: 0 PID: 24 Comm: ksoftirqd/1 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/06/2026
RIP: 0010:skb_dst_force include/net/dst.h:326 [inline]
RIP: 0010:xfrm_output_one net/xfrm/xfrm_output.c:549 [inline]
RIP: 0010:xfrm_output_resume+0x41d9/0x64e0 net/xfrm/xfrm_output.c:597
Code: be b4 01 00 00 48 c7 c2 20 fd 53 8d e8 f0 05 07 f7 e9 aa fc ff ff e8 96 b1 2b f7 90 0f 0b 90 e9 7e ed ff ff e8 88 b1 2b f7 90 <0f> 0b 90 e9 44 e0 ff ff 48 89 df e8 c7 3c 52 fa 84 c0 0f 84 e1 00
RSP: 0018:ffffc900001e7660 EFLAGS: 00010246
RAX: ffffffff8a9d6fa8 RBX: 0000000000000000 RCX: ffff88801f2f5dc0
RDX: 8000000000000100 RSI: 0000000000000100 RDI: 0000000000000000
RBP: ffffc900001e78f0 R08: 0000000000000100 R09: 1ffffffff237c017
R10: dffffc0000000000 R11: fffffbfff237c018 R12: dffffc0000000000
R13: ffff8880243df198 R14: ffff888021b2b210 R15: ffff888028e9a780
FS:  0000000000000000(0000) GS:ffff888123509000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f781b792e9c CR3: 000000007dcea000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 iptfs_output_queued net/xfrm/xfrm_iptfs.c:2325 [inline]
 iptfs_delay_timer+0x3803/0x4310 net/xfrm/xfrm_iptfs.c:2362
 __run_hrtimer kernel/time/hrtimer.c:2079 [inline]
 __hrtimer_run_queues+0x3bc/0xa10 kernel/time/hrtimer.c:2136
 hrtimer_run_softirq+0x1e3/0x2e0 kernel/time/hrtimer.c:2153
 handle_softirqs+0x265/0x8d0 kernel/softirq.c:669
 run_ksoftirqd+0x36/0x60 kernel/softirq.c:1133
 smpboot_thread_fn+0x5f8/0xb30 kernel/smpboot.c:162
 kthread+0x38b/0x480 kernel/kthread.c:436
 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>


---
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 syzkaller@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

                 reply	other threads:[~2026-11-14  0:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6af7a9e3.ff6dfe28.557e.002d.GAE@google.com \
    --to=syzbot+622de7e1f18a30fc404a@syzkaller.appspotmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=steffen.klassert@secunet.com \
    --cc=syzkaller-bugs@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.