* [syzbot] [bpf?] WARNING in do_check
@ 2025-06-13 7:12 syzbot
2025-06-13 7:56 ` Eduard Zingerman
0 siblings, 1 reply; 3+ messages in thread
From: syzbot @ 2025-06-13 7:12 UTC (permalink / raw)
To: andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa,
kpsingh, linux-kernel, martin.lau, netdev, sdf, song,
syzkaller-bugs, yonghong.song
Hello,
syzbot found the following issue on:
HEAD commit: 1c66f4a3612c bpf: Fix state use-after-free on push_stack()..
git tree: bpf-next
console+strace: https://syzkaller.appspot.com/x/log.txt?x=1346ed70580000
kernel config: https://syzkaller.appspot.com/x/.config?x=73696606574e3967
dashboard link: https://syzkaller.appspot.com/bug?extid=a36aac327960ff474804
compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1392610c580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=11a9ee0c580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/2ddb1df1c757/disk-1c66f4a3.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/6a318fc92af0/vmlinux-1c66f4a3.xz
kernel image: https://storage.googleapis.com/syzbot-assets/76c58dddcb6c/bzImage-1c66f4a3.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+a36aac327960ff474804@syzkaller.appspotmail.com
------------[ cut here ]------------
verifier bug: add backedge: no SCC in verification path, insn_idx 9(1)
WARNING: CPU: 1 PID: 5838 at kernel/bpf/verifier.c:1970 add_scc_backedge kernel/bpf/verifier.c:1969 [inline]
WARNING: CPU: 1 PID: 5838 at kernel/bpf/verifier.c:1970 is_state_visited kernel/bpf/verifier.c:19417 [inline]
WARNING: CPU: 1 PID: 5838 at kernel/bpf/verifier.c:1970 do_check+0xda21/0xdba0 kernel/bpf/verifier.c:19861
Modules linked in:
CPU: 1 UID: 0 PID: 5838 Comm: syz-executor286 Not tainted 6.15.0-syzkaller-g1c66f4a3612c #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
RIP: 0010:add_scc_backedge kernel/bpf/verifier.c:1969 [inline]
RIP: 0010:is_state_visited kernel/bpf/verifier.c:19417 [inline]
RIP: 0010:do_check+0xda21/0xdba0 kernel/bpf/verifier.c:19861
Code: 01 90 48 b8 00 00 00 00 00 fc ff df 41 0f b6 04 06 84 c0 0f 85 2b 01 00 00 41 8b 75 00 48 c7 c7 20 49 91 8b e8 d0 05 ad ff 90 <0f> 0b 90 90 e9 27 fe ff ff e8 11 5d e9 ff e8 3c 10 4d 00 ba 38 00
RSP: 0018:ffffc900043eeec0 EFLAGS: 00010246
RAX: 53f7659fb2f02200 RBX: ffffc900043ef180 RCX: ffff8880257d1e00
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002
RBP: ffffc900043ef2c8 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff1bfaa44 R12: ffff88801c7a4b00
R13: ffff88801c7a4b54 R14: 1ffff110038f496a R15: 0000000000000000
FS: 000055556bd6a380(0000) GS:ffff888125d54000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000000ebea398 CR3: 00000000713fa000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
do_check_common+0x18fa/0x2460 kernel/bpf/verifier.c:23086
do_check_main kernel/bpf/verifier.c:23177 [inline]
bpf_check+0x110e2/0x1a240 kernel/bpf/verifier.c:24530
bpf_prog_load+0x1318/0x1930 kernel/bpf/syscall.c:2972
__sys_bpf+0x5f1/0x860 kernel/bpf/syscall.c:5978
__do_sys_bpf kernel/bpf/syscall.c:6085 [inline]
__se_sys_bpf kernel/bpf/syscall.c:6083 [inline]
__x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6083
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f37a741f569
Code: 48 83 c4 28 c3 e8 37 17 00 00 0f 1f 80 00 00 00 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 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe3011bf08 EFLAGS: 00000246 ORIG_RAX: 0000000000000141
RAX: ffffffffffffffda RBX: 00007ffe3011c0d8 RCX: 00007f37a741f569
RDX: 0000000000000094 RSI: 0000200000000840 RDI: 0000000000000005
RBP: 00007f37a7492610 R08: 00007ffe3011c0d8 R09: 00007ffe3011c0d8
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007ffe3011c0c8 R14: 0000000000000001 R15: 0000000000000001
</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 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.
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [syzbot] [bpf?] WARNING in do_check
2025-06-13 7:12 [syzbot] [bpf?] WARNING in do_check syzbot
@ 2025-06-13 7:56 ` Eduard Zingerman
2025-06-13 16:10 ` Alexei Starovoitov
0 siblings, 1 reply; 3+ messages in thread
From: Eduard Zingerman @ 2025-06-13 7:56 UTC (permalink / raw)
To: syzbot, andrii, ast, bpf, daniel, haoluo, john.fastabend, jolsa,
kpsingh, linux-kernel, martin.lau, netdev, sdf, song,
syzkaller-bugs, yonghong.song
On Fri, 2025-06-13 at 00:12 -0700, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 1c66f4a3612c bpf: Fix state use-after-free on push_stack()..
> git tree: bpf-next
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=1346ed70580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=73696606574e3967
> dashboard link: https://syzkaller.appspot.com/bug?extid=a36aac327960ff474804
> compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1392610c580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=11a9ee0c580000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/2ddb1df1c757/disk-1c66f4a3.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/6a318fc92af0/vmlinux-1c66f4a3.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/76c58dddcb6c/bzImage-1c66f4a3.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+a36aac327960ff474804@syzkaller.appspotmail.com
>
> ------------[ cut here ]------------
Fwiw, here is a repro converted to selftest.
I'll take detailed look on Friday:
SEC("socket")
__naked void syzbot_repro(void)
{
asm volatile (
"r8 = 0xff80;"
"r1 = 0xff110001085a0800 ll;"
"r2 = 20;"
"r3 = 0;"
"call %[bpf_ktime_get_ns];"
"1:"
"w9 = w10;"
"if r9 >= 0xff4ad400 goto 2f;"
"may_goto +13;"
"r2 = 0;"
"*(u8 *)(r10 -16) = r9;"
"2:"
"if r9 s< 0x1004 goto 3f;"
"lock *(u32 *)(r10 -16) += r10;"
"r6 = r8;"
"r8 += -8;"
"r4 = r10;"
"3:"
"r6 += -16;"
"r2 = 8;"
"r2 = 0xff110001085a05d8 ll;"
"r5 = 8;"
"if w8 & 0x76 goto 1b;"
"r8 = r9;"
"if w8 != 0x0 goto +0;"
"call %[bpf_get_prandom_u32];"
"r0 = 0;"
"exit;"
:
: __imm(bpf_get_prandom_u32),
__imm(bpf_ktime_get_ns)
: __clobber_all);
}
[...]
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [syzbot] [bpf?] WARNING in do_check
2025-06-13 7:56 ` Eduard Zingerman
@ 2025-06-13 16:10 ` Alexei Starovoitov
0 siblings, 0 replies; 3+ messages in thread
From: Alexei Starovoitov @ 2025-06-13 16:10 UTC (permalink / raw)
To: Eduard Zingerman
Cc: syzbot, Andrii Nakryiko, Alexei Starovoitov, bpf, Daniel Borkmann,
Hao Luo, John Fastabend, Jiri Olsa, KP Singh, LKML,
Martin KaFai Lau, Network Development, Stanislav Fomichev,
Song Liu, syzkaller-bugs, Yonghong Song
On Fri, Jun 13, 2025 at 12:56 AM Eduard Zingerman <eddyz87@gmail.com> wrote:
>
> On Fri, 2025-06-13 at 00:12 -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: 1c66f4a3612c bpf: Fix state use-after-free on push_stack()..
> > git tree: bpf-next
> > console+strace: https://syzkaller.appspot.com/x/log.txt?x=1346ed70580000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=73696606574e3967
> > dashboard link: https://syzkaller.appspot.com/bug?extid=a36aac327960ff474804
> > compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1392610c580000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=11a9ee0c580000
> >
> > Downloadable assets:
> > disk image: https://storage.googleapis.com/syzbot-assets/2ddb1df1c757/disk-1c66f4a3.raw.xz
> > vmlinux: https://storage.googleapis.com/syzbot-assets/6a318fc92af0/vmlinux-1c66f4a3.xz
> > kernel image: https://storage.googleapis.com/syzbot-assets/76c58dddcb6c/bzImage-1c66f4a3.xz
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+a36aac327960ff474804@syzkaller.appspotmail.com
> >
> > ------------[ cut here ]------------
>
> Fwiw, here is a repro converted to selftest.
> I'll take detailed look on Friday:
>
> SEC("socket")
> __naked void syzbot_repro(void)
> {
> asm volatile (
> "r8 = 0xff80;"
> "r1 = 0xff110001085a0800 ll;"
> "r2 = 20;"
> "r3 = 0;"
> "call %[bpf_ktime_get_ns];"
> "1:"
> "w9 = w10;"
> "if r9 >= 0xff4ad400 goto 2f;"
> "may_goto +13;"
> "r2 = 0;"
> "*(u8 *)(r10 -16) = r9;"
> "2:"
> "if r9 s< 0x1004 goto 3f;"
> "lock *(u32 *)(r10 -16) += r10;"
> "r6 = r8;"
> "r8 += -8;"
> "r4 = r10;"
> "3:"
> "r6 += -16;"
> "r2 = 8;"
> "r2 = 0xff110001085a05d8 ll;"
> "r5 = 8;"
> "if w8 & 0x76 goto 1b;"
I suspect this might be the fix:
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index c378074516cf..e76eb0322912 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -23950,6 +23950,7 @@ static bool can_jump(struct bpf_insn *insn)
case BPF_JSLT:
case BPF_JSLE:
case BPF_JCOND:
+ case BPF_JSET:
return true;
}
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-06-13 16:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-13 7:12 [syzbot] [bpf?] WARNING in do_check syzbot
2025-06-13 7:56 ` Eduard Zingerman
2025-06-13 16:10 ` Alexei Starovoitov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).