[syzbot] [overlayfs?] general protection fault in ovl_iterate

1 view
Skip to first unread message

syzbot

unread,
9:44 AM (2 hours ago) 9:44 AM
to amir...@gmail.com, linux-...@vger.kernel.org, linux-...@vger.kernel.org, mik...@szeredi.hu, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 8f0b4cce4481 Linux 6.19-rc1
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=128d7b0a580000
kernel config: https://syzkaller.appspot.com/x/.config?x=5888b6002e661229
dashboard link: https://syzkaller.appspot.com/bug?extid=a16fb0cce329a320661c
compiler: gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40

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

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/551afd5ea893/disk-8f0b4cce.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/1f52c6204286/vmlinux-8f0b4cce.xz
kernel image: https://storage.googleapis.com/syzbot-assets/e55fced475b1/bzImage-8f0b4cce.xz

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

Oops: general protection fault, probably for non-canonical address 0xdffffc9110a1fb76: 0000 [#1] SMP KASAN NOPTI
KASAN: probably user-memory-access in range [0x00000488850fdbb0-0x00000488850fdbb7]
CPU: 0 UID: 0 PID: 25741 Comm: syz.3.5509 Tainted: G L syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
RIP: 0010:ovl_iterate_merged fs/overlayfs/readdir.c:856 [inline]
RIP: 0010:ovl_iterate+0x645/0x1120 fs/overlayfs/readdir.c:906
Code: 07 00 00 49 8b 46 08 48 83 c0 10 48 39 c3 0f 84 b0 fd ff ff e8 bc 94 77 fe 4c 8d 63 31 4c 89 e0 4c 89 e2 48 c1 e8 03 83 e2 07 <0f> b6 04 28 38 d0 7f 08 84 c0 0f 85 01 07 00 00 44 0f b6 6b 31 31
RSP: 0018:ffffc90003367d20 EFLAGS: 00010206
RAX: 0000009110a1fb76 RBX: 00000488850fdb85 RCX: ffffc90019118000
RDX: 0000000000000006 RSI: ffffffff83473ee4 RDI: 0000000000000007
RBP: dffffc0000000000 R08: 0000000000000007 R09: 0000000000000000
R10: 0000000000000000 R11: ffff888026ca66b0 R12: 00000488850fdbb6
R13: ffff888056ed2598 R14: ffff888033b4e900 R15: ffffc90003367e70
FS: 00007f78892aa6c0(0000) GS:ffff8881248f6000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f0c09f72100 CR3: 000000001270e000 CR4: 0000000000350ef0
Call Trace:
<TASK>
wrap_directory_iterator+0xa2/0xe0 fs/readdir.c:65
iterate_dir+0x296/0xaf0 fs/readdir.c:108
__do_sys_getdents fs/readdir.c:326 [inline]
__se_sys_getdents fs/readdir.c:312 [inline]
__x64_sys_getdents+0x13c/0x2b0 fs/readdir.c:312
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f788838f749
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:00007f78892aa038 EFLAGS: 00000246 ORIG_RAX: 000000000000004e
RAX: ffffffffffffffda RBX: 00007f78885e5fa0 RCX: 00007f788838f749
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000007
RBP: 00007f7888413f91 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f78885e6038 R14: 00007f78885e5fa0 R15: 00007ffe66aedea8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ovl_iterate_merged fs/overlayfs/readdir.c:856 [inline]
RIP: 0010:ovl_iterate+0x645/0x1120 fs/overlayfs/readdir.c:906
Code: 07 00 00 49 8b 46 08 48 83 c0 10 48 39 c3 0f 84 b0 fd ff ff e8 bc 94 77 fe 4c 8d 63 31 4c 89 e0 4c 89 e2 48 c1 e8 03 83 e2 07 <0f> b6 04 28 38 d0 7f 08 84 c0 0f 85 01 07 00 00 44 0f b6 6b 31 31
RSP: 0018:ffffc90003367d20 EFLAGS: 00010206
RAX: 0000009110a1fb76 RBX: 00000488850fdb85 RCX: ffffc90019118000
RDX: 0000000000000006 RSI: ffffffff83473ee4 RDI: 0000000000000007
RBP: dffffc0000000000 R08: 0000000000000007 R09: 0000000000000000
R10: 0000000000000000 R11: ffff888026ca66b0 R12: 00000488850fdbb6
R13: ffff888056ed2598 R14: ffff888033b4e900 R15: ffffc90003367e70
FS: 00007f78892aa6c0(0000) GS:ffff8881249f6000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055e2adb4d000 CR3: 000000001270e000 CR4: 0000000000350ef0
----------------
Code disassembly (best guess), 1 bytes skipped:
0: 00 00 add %al,(%rax)
2: 49 8b 46 08 mov 0x8(%r14),%rax
6: 48 83 c0 10 add $0x10,%rax
a: 48 39 c3 cmp %rax,%rbx
d: 0f 84 b0 fd ff ff je 0xfffffdc3
13: e8 bc 94 77 fe call 0xfe7794d4
18: 4c 8d 63 31 lea 0x31(%rbx),%r12
1c: 4c 89 e0 mov %r12,%rax
1f: 4c 89 e2 mov %r12,%rdx
22: 48 c1 e8 03 shr $0x3,%rax
26: 83 e2 07 and $0x7,%edx
* 29: 0f b6 04 28 movzbl (%rax,%rbp,1),%eax <-- trapping instruction
2d: 38 d0 cmp %dl,%al
2f: 7f 08 jg 0x39
31: 84 c0 test %al,%al
33: 0f 85 01 07 00 00 jne 0x73a
39: 44 0f b6 6b 31 movzbl 0x31(%rbx),%r13d
3e: 31 .byte 0x31


---
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,
11:12 AM (1 hour ago) 11:12 AM
to amir...@gmail.com, linux-...@vger.kernel.org, linux-...@vger.kernel.org, mik...@szeredi.hu, syzkall...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: 8f0b4cce4481 Linux 6.19-rc1
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=136ffb58580000
kernel config: https://syzkaller.appspot.com/x/.config?x=8a8594efdc14f07a
dashboard link: https://syzkaller.appspot.com/bug?extid=a16fb0cce329a320661c
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=106bcd84580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14768f1a580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/cd4f5f43efc8/disk-8f0b4cce.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/aafb35ac3a3c/vmlinux-8f0b4cce.xz
kernel image: https://storage.googleapis.com/syzbot-assets/d221fae4ab17/Image-8f0b4cce.gz.xz

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

Unable to handle kernel paging request at virtual address ffffffffc24a9a90
KASAN: maybe wild-memory-access in range [0x0003fffe1254d480-0x0003fffe1254d487]
Mem abort info:
ESR = 0x0000000096000006
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x06: level 2 translation fault
Data abort info:
ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
CM = 0, WnR = 0, TnD = 0, TagAccess = 0
GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000206d55000
[ffffffffc24a9a90] pgd=0000000000000000, p4d=000000020aaef403, pud=000000020aaf0403, pmd=0000000000000000
Internal error: Oops: 0000000096000006 [#1] SMP
Modules linked in:
CPU: 0 UID: 0 PID: 6752 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/03/2025
pstate: 83400005 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
pc : ovl_seek_cursor fs/overlayfs/readdir.c:471 [inline]
pc : ovl_iterate_merged fs/overlayfs/readdir.c:851 [inline]
pc : ovl_iterate+0xff8/0x1ca4 fs/overlayfs/readdir.c:906
lr : ovl_cache_get fs/overlayfs/readdir.c:505 [inline]
lr : ovl_iterate_merged fs/overlayfs/readdir.c:845 [inline]
lr : ovl_iterate+0xcbc/0x1ca4 fs/overlayfs/readdir.c:906
sp : ffff80009d567860
x29: ffff80009d567b70 x28: ffff0000c24a9e80 x27: 0000000000000000
x26: 0000000000000000 x25: ffffffffc24a9a80 x24: ffff0000c24a9e88
x23: ffffffffc24a9a90 x22: ffff80009d567cc8 x21: dfff800000000000
x20: ffff0000d55a1a5c x19: ffffffffc24a9a90 x18: 00000000ffffffff
x17: ffff800080df1c30 x16: ffff80008053826c x15: 0000000000000001
x14: 00000000ffff8000 x13: 0000000074bfa048 x12: ffff800080021d9c
x11: ffff800093397d48 x10: 0000000000ff0100 x9 : 860a1b99182b4800
x8 : 0000000000000000 x7 : 0000000000000000 x6 : 000000000000003f
x5 : 0000000000000040 x4 : 0000000000000001 x3 : 0000000000000010
x2 : 0000000000000006 x1 : 0000000000000080 x0 : 0000000000000001
Call trace:
ovl_seek_cursor fs/overlayfs/readdir.c:471 [inline] (P)
ovl_iterate_merged fs/overlayfs/readdir.c:851 [inline] (P)
ovl_iterate+0xff8/0x1ca4 fs/overlayfs/readdir.c:906 (P)
wrap_directory_iterator+0x90/0xf0 fs/readdir.c:65
shared_ovl_iterate+0x30/0x40 fs/overlayfs/readdir.c:1065
iterate_dir+0x2dc/0x478 fs/readdir.c:108
__do_sys_getdents64 fs/readdir.c:410 [inline]
__se_sys_getdents64 fs/readdir.c:396 [inline]
__arm64_sys_getdents64+0x110/0x2fc fs/readdir.c:396
__invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
invoke_syscall+0x98/0x254 arch/arm64/kernel/syscall.c:49
el0_svc_common+0xe8/0x23c arch/arm64/kernel/syscall.c:132
do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
el0_svc+0x5c/0x26c arch/arm64/kernel/entry-common.c:724
el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:743
el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596
Code: 38756908 34000068 aa1703e0 97c3a4c7 (f94002f7)
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
0: 38756908 ldrb w8, [x8, x21]
4: 34000068 cbz w8, 0x10
8: aa1703e0 mov x0, x23
c: 97c3a4c7 bl 0xffffffffff0e9328
* 10: f94002f7 ldr x23, [x23] <-- trapping instruction


---
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.
Reply all
Reply to author
Forward
0 new messages