netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).