lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANn89iJusO-iDNtUYQKKy6mmrZVqkJ=20_w+RavDup8bmTJ=pw@mail.gmail.com>
Date: Mon, 4 Aug 2025 06:08:23 -0700
From: Eric Dumazet <edumazet@...gle.com>
To: syzbot <syzbot+27d7cfbc93457e472e00@...kaller.appspotmail.com>
Cc: davem@...emloft.net, horms@...nel.org, kuba@...nel.org, 
	linux-kernel@...r.kernel.org, netdev@...r.kernel.org, pabeni@...hat.com, 
	syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [net?] KASAN: null-ptr-deref Write in rcuref_put (4)

On Mon, Aug 4, 2025 at 4:12 AM syzbot
<syzbot+27d7cfbc93457e472e00@...kaller.appspotmail.com> wrote:
>
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit:    5c5a10f0be96 Add linux-next specific files for 20250804
> git tree:       linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=14f23aa2580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=f4ccbd076877954b
> dashboard link: https://syzkaller.appspot.com/bug?extid=27d7cfbc93457e472e00
> compiler:       Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1628faa2580000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=12490434580000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/cb2134de7be8/disk-5c5a10f0.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/fe8a36605e0c/vmlinux-5c5a10f0.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/12df22603d55/bzImage-5c5a10f0.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+27d7cfbc93457e472e00@...kaller.appspotmail.com
>
> BUG: unable to handle page fault for address: ffffffffffffffdb
> #PF: supervisor write access in kernel mode
> #PF: error_code(0x0002) - not-present page
> PGD df3b067 P4D df3b067 PUD df3d067 PMD 0
> Oops: Oops: 0002 [#1] SMP KASAN PTI
> CPU: 1 UID: 0 PID: 6346 Comm: syz.0.336 Not tainted 6.16.0-next-20250804-syzkaller #0 PREEMPT(full)
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
> RIP: 0010:arch_atomic_add_return arch/x86/include/asm/atomic.h:85 [inline]
> RIP: 0010:raw_atomic_sub_return_release include/linux/atomic/atomic-arch-fallback.h:846 [inline]
> RIP: 0010:atomic_sub_return_release include/linux/atomic/atomic-instrumented.h:327 [inline]
> RIP: 0010:__rcuref_put include/linux/rcuref.h:109 [inline]
> RIP: 0010:rcuref_put+0x172/0x210 include/linux/rcuref.h:173
> Code: c7 c7 80 72 94 8c be 68 00 00 00 48 c7 c2 c0 72 94 8c e8 21 f7 35 f8 48 89 df be 04 00 00 00 e8 84 90 bb f8 41 be ff ff ff ff <f0> 44 0f c1 33 41 8d 76 ff bf ff ff ff ff e8 ab 27 58 f8 41 ff ce
> RSP: 0018:ffffc9000431f960 EFLAGS: 00010256
> RAX: ffffffff89678f01 RBX: ffffffffffffffdb RCX: ffffffff89678fdc
> RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffffffffffffdb
> RBP: ffffc9000431f9f8 R08: ffffffffffffffde R09: 1ffffffffffffffb
> R10: dffffc0000000000 R11: fffffbfffffffffc R12: dffffc0000000000
> R13: dffffc0000000000 R14: 00000000ffffffff R15: 1ffff92000863f2c
> FS:  0000555583637500(0000) GS:ffff888125d17000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffffffffffffdb CR3: 000000002465a000 CR4: 00000000003526f0
> Call Trace:
>  <TASK>
>  dst_release+0x24/0x1b0 net/core/dst.c:167
>  ip_rt_put include/net/route.h:285 [inline]
>  pptp_xmit+0x14b/0x1a90 drivers/net/ppp/pptp.c:267
>  __ppp_channel_push+0xf2/0x1c0 drivers/net/ppp/ppp_generic.c:2166
>  ppp_channel_push+0x123/0x660 drivers/net/ppp/ppp_generic.c:2198
>  ppp_write+0x2b0/0x400 drivers/net/ppp/ppp_generic.c:544
>  vfs_write+0x27b/0xb30 fs/read_write.c:684
>  ksys_write+0x145/0x250 fs/read_write.c:738
>  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:0x7fda7098eb69
> 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:00007fffb2fc7658 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
> RAX: ffffffffffffffda RBX: 00007fda70bb5fa0 RCX: 00007fda7098eb69
> RDX: 0000000000000013 RSI: 00002000000002c0 RDI: 0000000000000004
> RBP: 00007fda70a11df1 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007fda70bb5fa0 R14: 00007fda70bb5fa0 R15: 0000000000000003
>  </TASK>
> Modules linked in:
> CR2: ffffffffffffffdb
> ---[ end trace 0000000000000000 ]---
> RIP: 0010:arch_atomic_add_return arch/x86/include/asm/atomic.h:85 [inline]
> RIP: 0010:raw_atomic_sub_return_release include/linux/atomic/atomic-arch-fallback.h:846 [inline]
> RIP: 0010:atomic_sub_return_release include/linux/atomic/atomic-instrumented.h:327 [inline]
> RIP: 0010:__rcuref_put include/linux/rcuref.h:109 [inline]
> RIP: 0010:rcuref_put+0x172/0x210 include/linux/rcuref.h:173
> Code: c7 c7 80 72 94 8c be 68 00 00 00 48 c7 c2 c0 72 94 8c e8 21 f7 35 f8 48 89 df be 04 00 00 00 e8 84 90 bb f8 41 be ff ff ff ff <f0> 44 0f c1 33 41 8d 76 ff bf ff ff ff ff e8 ab 27 58 f8 41 ff ce
> RSP: 0018:ffffc9000431f960 EFLAGS: 00010256
> RAX: ffffffff89678f01 RBX: ffffffffffffffdb RCX: ffffffff89678fdc
> RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffffffffffffdb
> RBP: ffffc9000431f9f8 R08: ffffffffffffffde R09: 1ffffffffffffffb
> R10: dffffc0000000000 R11: fffffbfffffffffc R12: dffffc0000000000
> R13: dffffc0000000000 R14: 00000000ffffffff R15: 1ffff92000863f2c
> FS:  0000555583637500(0000) GS:ffff888125d17000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffffffffffffdb CR3: 000000002465a000 CR4: 00000000003526f0
> ----------------
> Code disassembly (best guess):
>    0:   c7 c7 80 72 94 8c       mov    $0x8c947280,%edi
>    6:   be 68 00 00 00          mov    $0x68,%esi
>    b:   48 c7 c2 c0 72 94 8c    mov    $0xffffffff8c9472c0,%rdx
>   12:   e8 21 f7 35 f8          call   0xf835f738
>   17:   48 89 df                mov    %rbx,%rdi
>   1a:   be 04 00 00 00          mov    $0x4,%esi
>   1f:   e8 84 90 bb f8          call   0xf8bb90a8
>   24:   41 be ff ff ff ff       mov    $0xffffffff,%r14d
> * 2a:   f0 44 0f c1 33          lock xadd %r14d,(%rbx) <-- trapping instruction
>   2f:   41 8d 76 ff             lea    -0x1(%r14),%esi
>   33:   bf ff ff ff ff          mov    $0xffffffff,%edi
>   38:   e8 ab 27 58 f8          call   0xf85827e8
>   3d:   41 ff ce                dec    %r14d
>

Quite different bug I think, added with my recent commit

commit de9c4861fb42f0cd72da844c3c34f692d5895b7b
Author: Eric Dumazet <edumazet@...gle.com>
Date:   Tue Jul 29 08:02:07 2025 +0000

    pptp: ensure minimal skb length in pptp_xmit()

#syz test

diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c
index 4cd6f67bd5d3520308ee4f8d68547a1bc8a7bfd3..90737cb718928a2dddacdc098f1d48d4430d6ddd
100644
--- a/drivers/net/ppp/pptp.c
+++ b/drivers/net/ppp/pptp.c
@@ -159,17 +159,17 @@ static int pptp_xmit(struct ppp_channel *chan,
struct sk_buff *skb)
        int len;
        unsigned char *data;
        __u32 seq_recv;
-       struct rtable *rt = NULL;
+       struct rtable *rt;
        struct net_device *tdev;
        struct iphdr  *iph;
        int    max_headroom;

        if (sk_pppox(po)->sk_state & PPPOX_DEAD)
-               goto tx_error;
+               goto tx_drop;

        rt = pptp_route_output(po, &fl4);
        if (IS_ERR(rt))
-               goto tx_error;
+               goto tx_drop;

        tdev = rt->dst.dev;

@@ -265,6 +265,7 @@ static int pptp_xmit(struct ppp_channel *chan,
struct sk_buff *skb)

 tx_error:
        ip_rt_put(rt);
+tx_drop:
        kfree_skb(skb);
        return 1;
 }

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ