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>] [day] [month] [year] [list]
Message-ID: <67bcb4a6.050a0220.bbfd1.008f.GAE@google.com>
Date: Mon, 24 Feb 2025 10:04:22 -0800
From: syzbot <syzbot+356aed408415a56543cd@...kaller.appspotmail.com>
To: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org, 
	syzkaller-bugs@...glegroups.com
Subject: [syzbot] [hfs?] KASAN: slab-out-of-bounds Read in hfsplus_bmap_alloc

Hello,

syzbot found the following issue on:

HEAD commit:    a1c24ab82279 Merge branch 'for-next/el2-enable-feat-pmuv3p..
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=177737f8580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=f6b108de97771157
dashboard link: https://syzkaller.appspot.com/bug?extid=356aed408415a56543cd
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=106757a4580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=10b646e4580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/9581dbc26f55/disk-a1c24ab8.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/50aec9ab8b8b/vmlinux-a1c24ab8.xz
kernel image: https://storage.googleapis.com/syzbot-assets/3a018984f8f5/Image-a1c24ab8.gz.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/af05206b0a6c/mount_1.gz

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

loop0: detected capacity change from 0 to 1024
==================================================================
BUG: KASAN: slab-out-of-bounds in hfsplus_bmap_alloc+0x150/0x538
Read of size 8 at addr ffff0000c1d289c0 by task syz-executor168/6441

CPU: 1 UID: 0 PID: 6441 Comm: syz-executor168 Not tainted 6.14.0-rc3-syzkaller-ga1c24ab82279 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call trace:
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C)
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0xe4/0x150 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:378 [inline]
 print_report+0x198/0x538 mm/kasan/report.c:489
 kasan_report+0xd8/0x138 mm/kasan/report.c:602
 __asan_report_load8_noabort+0x20/0x2c mm/kasan/report_generic.c:381
 hfsplus_bmap_alloc+0x150/0x538
 hfs_btree_inc_height+0xf8/0xa60 fs/hfsplus/brec.c:475
 hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
 __hfsplus_ext_write_extent+0x288/0x4ac fs/hfsplus/extents.c:107
 __hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
 hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
 hfsplus_file_extend+0x39c/0x1544 fs/hfsplus/extents.c:462
 hfsplus_get_block+0x398/0x1168 fs/hfsplus/extents.c:245
 __block_write_begin_int+0x4c4/0x1610 fs/buffer.c:2116
 block_write_begin fs/buffer.c:2226 [inline]
 cont_write_begin+0x634/0x984 fs/buffer.c:2577
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 cont_expand_zero fs/buffer.c:2504 [inline]
 cont_write_begin+0x2b0/0x984 fs/buffer.c:2567
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 generic_perform_write+0x29c/0x868 mm/filemap.c:4189
 __generic_file_write_iter+0xfc/0x204 mm/filemap.c:4290
 generic_file_write_iter+0x108/0x4b0 mm/filemap.c:4316
 __kernel_write_iter+0x340/0x7a0 fs/read_write.c:612
 dump_emit_page fs/coredump.c:884 [inline]
 dump_user_range+0x378/0x6c8 fs/coredump.c:945
 elf_core_dump+0x336c/0x3c38 fs/binfmt_elf.c:2129
 do_coredump+0x1d28/0x29a0 fs/coredump.c:758
 get_signal+0xf6c/0x1500 kernel/signal.c:3021
 do_signal+0x1a4/0x3a04 arch/arm64/kernel/signal.c:1658
 do_notify_resume+0x74/0x1f4 arch/arm64/kernel/entry-common.c:148
 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:169 [inline]
 exit_to_user_mode arch/arm64/kernel/entry-common.c:178 [inline]
 el0_da+0xbc/0x178 arch/arm64/kernel/entry-common.c:605
 el0t_64_sync_handler+0xcc/0x108 arch/arm64/kernel/entry-common.c:765
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600

Allocated by task 6441:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x40/0x78 mm/kasan/common.c:68
 kasan_save_alloc_info+0x40/0x50 mm/kasan/generic.c:562
 poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
 __kasan_kmalloc+0xac/0xc4 mm/kasan/common.c:394
 kasan_kmalloc include/linux/kasan.h:260 [inline]
 __do_kmalloc_node mm/slub.c:4294 [inline]
 __kmalloc_noprof+0x32c/0x54c mm/slub.c:4306
 kmalloc_noprof include/linux/slab.h:905 [inline]
 kzalloc_noprof include/linux/slab.h:1037 [inline]
 __hfs_bnode_create+0xe4/0x6d4 fs/hfsplus/bnode.c:409
 hfsplus_bnode_find+0x1f8/0xc04 fs/hfsplus/bnode.c:486
 hfsplus_bmap_alloc+0xc8/0x538 fs/hfsplus/btree.c:390
 hfs_btree_inc_height+0xf8/0xa60 fs/hfsplus/brec.c:475
 hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
 __hfsplus_ext_write_extent+0x288/0x4ac fs/hfsplus/extents.c:107
 __hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
 hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
 hfsplus_file_extend+0x39c/0x1544 fs/hfsplus/extents.c:462
 hfsplus_get_block+0x398/0x1168 fs/hfsplus/extents.c:245
 __block_write_begin_int+0x4c4/0x1610 fs/buffer.c:2116
 block_write_begin fs/buffer.c:2226 [inline]
 cont_write_begin+0x634/0x984 fs/buffer.c:2577
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 cont_expand_zero fs/buffer.c:2504 [inline]
 cont_write_begin+0x2b0/0x984 fs/buffer.c:2567
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 generic_perform_write+0x29c/0x868 mm/filemap.c:4189
 __generic_file_write_iter+0xfc/0x204 mm/filemap.c:4290
 generic_file_write_iter+0x108/0x4b0 mm/filemap.c:4316
 __kernel_write_iter+0x340/0x7a0 fs/read_write.c:612
 dump_emit_page fs/coredump.c:884 [inline]
 dump_user_range+0x378/0x6c8 fs/coredump.c:945
 elf_core_dump+0x336c/0x3c38 fs/binfmt_elf.c:2129
 do_coredump+0x1d28/0x29a0 fs/coredump.c:758
 get_signal+0xf6c/0x1500 kernel/signal.c:3021
 do_signal+0x1a4/0x3a04 arch/arm64/kernel/signal.c:1658
 do_notify_resume+0x74/0x1f4 arch/arm64/kernel/entry-common.c:148
 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:169 [inline]
 exit_to_user_mode arch/arm64/kernel/entry-common.c:178 [inline]
 el0_da+0xbc/0x178 arch/arm64/kernel/entry-common.c:605
 el0t_64_sync_handler+0xcc/0x108 arch/arm64/kernel/entry-common.c:765
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600

The buggy address belongs to the object at ffff0000c1d28900
 which belongs to the cache kmalloc-192 of size 192
The buggy address is located 48 bytes to the right of
 allocated 144-byte region [ffff0000c1d28900, ffff0000c1d28990)

The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x101d28
flags: 0x5ffc00000000000(node=0|zone=2|lastcpupid=0x7ff)
page_type: f5(slab)
raw: 05ffc00000000000 ffff0000c00013c0 dead000000000100 dead000000000122
raw: 0000000000000000 0000000080100010 00000000f5000000 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000c1d28880: 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff0000c1d28900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff0000c1d28980: 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                                           ^
 ffff0000c1d28a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff0000c1d28a80: 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================
------------[ cut here ]------------
WARNING: CPU: 1 PID: 6441 at ./include/linux/mm.h:2250 rcu_read_unlock_sched include/linux/rcupdate.h:964 [inline]
WARNING: CPU: 1 PID: 6441 at ./include/linux/mm.h:2250 pfn_valid include/linux/mmzone.h:2069 [inline]
WARNING: CPU: 1 PID: 6441 at ./include/linux/mm.h:2250 lowmem_page_address include/linux/mm.h:2250 [inline]
WARNING: CPU: 1 PID: 6441 at ./include/linux/mm.h:2250 kmap_local_page+0x388/0x500 include/linux/highmem-internal.h:180
Modules linked in:
CPU: 1 UID: 0 PID: 6441 Comm: syz-executor168 Tainted: G    B              6.14.0-rc3-syzkaller-ga1c24ab82279 #0
Tainted: [B]=BAD_PAGE
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : lowmem_page_address include/linux/rcupdate.h:964 [inline]
pc : kmap_local_page+0x388/0x500 include/linux/highmem-internal.h:180
lr : pfn_valid include/linux/mmzone.h:2061 [inline]
lr : lowmem_page_address include/linux/mm.h:2250 [inline]
lr : kmap_local_page+0x148/0x500 include/linux/highmem-internal.h:180
sp : ffff8000a4a15bf0
x29: ffff8000a4a15bf0 x28: ffff0000dc472000 x27: 1ffff00014942b8c
x26: 1fffe0001b88e403 x25: 1fffe0001b88f5fb x24: ffff80008f4d4000
x23: 1ffff00011e9a8a9 x22: ffff8000a4a15c80 x21: dfff800000000000
x20: ffff0000c1d28900 x19: 049004df41001929 x18: 0000000000000008
x17: 0000000000000000 x16: ffff80008b7275dc x15: 0000000000000001
x14: 1ffff0001262e6f8 x13: 0000000000000000 x12: 0000000000000000
x11: ffff70001262e6f9 x10: 0000000000ff0100 x9 : 0000000000000000
x8 : ffff0000c5fa0000 x7 : 0000000000000001 x6 : 0000000000000001
x5 : ffff8000a4a152f8 x4 : ffff80008fcaf720 x3 : ffff8000802f88ec
x2 : 0000000000000001 x1 : 049004df41001929 x0 : 0400000000000000
Call trace:
 rcu_read_unlock_sched include/linux/rcupdate.h:964 [inline] (P)
 pfn_valid include/linux/mmzone.h:2069 [inline] (P)
 lowmem_page_address include/linux/mm.h:2250 [inline] (P)
 kmap_local_page+0x388/0x500 include/linux/highmem-internal.h:180 (P)
 hfsplus_bmap_alloc+0x158/0x538
 hfs_btree_inc_height+0xf8/0xa60 fs/hfsplus/brec.c:475
 hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
 __hfsplus_ext_write_extent+0x288/0x4ac fs/hfsplus/extents.c:107
 __hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
 hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
 hfsplus_file_extend+0x39c/0x1544 fs/hfsplus/extents.c:462
 hfsplus_get_block+0x398/0x1168 fs/hfsplus/extents.c:245
 __block_write_begin_int+0x4c4/0x1610 fs/buffer.c:2116
 block_write_begin fs/buffer.c:2226 [inline]
 cont_write_begin+0x634/0x984 fs/buffer.c:2577
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 cont_expand_zero fs/buffer.c:2504 [inline]
 cont_write_begin+0x2b0/0x984 fs/buffer.c:2567
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 generic_perform_write+0x29c/0x868 mm/filemap.c:4189
 __generic_file_write_iter+0xfc/0x204 mm/filemap.c:4290
 generic_file_write_iter+0x108/0x4b0 mm/filemap.c:4316
 __kernel_write_iter+0x340/0x7a0 fs/read_write.c:612
 dump_emit_page fs/coredump.c:884 [inline]
 dump_user_range+0x378/0x6c8 fs/coredump.c:945
 elf_core_dump+0x336c/0x3c38 fs/binfmt_elf.c:2129
 do_coredump+0x1d28/0x29a0 fs/coredump.c:758
 get_signal+0xf6c/0x1500 kernel/signal.c:3021
 do_signal+0x1a4/0x3a04 arch/arm64/kernel/signal.c:1658
 do_notify_resume+0x74/0x1f4 arch/arm64/kernel/entry-common.c:148
 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:169 [inline]
 exit_to_user_mode arch/arm64/kernel/entry-common.c:178 [inline]
 el0_da+0xbc/0x178 arch/arm64/kernel/entry-common.c:605
 el0t_64_sync_handler+0xcc/0x108 arch/arm64/kernel/entry-common.c:765
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600
irq event stamp: 9593
hardirqs last  enabled at (9593): [<ffff8000803d4db4>] raw_spin_rq_unlock_irq+0x14/0x24 kernel/sched/sched.h:1533
hardirqs last disabled at (9592): [<ffff80008b7d0e04>] __schedule+0x2bc/0x257c kernel/sched/core.c:6668
softirqs last  enabled at (7186): [<ffff800080311b48>] softirq_handle_end kernel/softirq.c:407 [inline]
softirqs last  enabled at (7186): [<ffff800080311b48>] handle_softirqs+0xb44/0xd34 kernel/softirq.c:589
softirqs last disabled at (7173): [<ffff800080020dbc>] __do_softirq+0x14/0x20 kernel/softirq.c:595
---[ end trace 0000000000000000 ]---
Unable to handle kernel paging request at virtual address fffd86fa0000cb28
KASAN: maybe wild-memory-access in range [0xfff037d000065940-0xfff037d000065947]
Mem abort info:
  ESR = 0x0000000096000004
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x04: level 0 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000004, 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=00000001a50a6000
[fffd86fa0000cb28] pgd=0000000000000000, p4d=0000000000000000
Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
Modules linked in:
CPU: 1 UID: 0 PID: 6441 Comm: syz-executor168 Tainted: G    B   W          6.14.0-rc3-syzkaller-ga1c24ab82279 #0
Tainted: [B]=BAD_PAGE, [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : hfsplus_bmap_alloc+0x180/0x538 fs/hfsplus/btree.c:404
lr : hfsplus_bmap_alloc+0x16c/0x538 fs/hfsplus/btree.c:403
sp : ffff8000a4a15c40
x29: ffff8000a4a15cc0 x28: 0000000000000f00 x27: 1ffff00014942b8c
x26: fff037d000064a40 x25: fff037d000065940 x24: 00000000ffff90f8
x23: ffff0000c1d289c0 x22: ffff8000a4a15c80 x21: dfff800000000000
x20: ffff0000c1d28900 x19: 1ffe06fa0000cb28 x18: 0000000000000008
x17: 0000000000000000 x16: ffff80008b7275dc x15: 0000000000000001
x14: 1ffff0001262e6f8 x13: 0000000000000000 x12: 0000000000000000
x11: ffff70001262e6f9 x10: 0000000000ff0100 x9 : 0000000000000000
x8 : ffff0000c5fa0000 x7 : 0000000000000001 x6 : 0000000000000001
x5 : ffff8000a4a152f8 x4 : ffff80008fcaf720 x3 : ffff8000802f88ec
x2 : 0000000000000001 x1 : 00000000000090f8 x0 : 0000000000000000
Call trace:
 hfsplus_bmap_alloc+0x180/0x538 fs/hfsplus/btree.c:404 (P)
 hfs_btree_inc_height+0xf8/0xa60 fs/hfsplus/brec.c:475
 hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
 __hfsplus_ext_write_extent+0x288/0x4ac fs/hfsplus/extents.c:107
 __hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
 hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
 hfsplus_file_extend+0x39c/0x1544 fs/hfsplus/extents.c:462
 hfsplus_get_block+0x398/0x1168 fs/hfsplus/extents.c:245
 __block_write_begin_int+0x4c4/0x1610 fs/buffer.c:2116
 block_write_begin fs/buffer.c:2226 [inline]
 cont_write_begin+0x634/0x984 fs/buffer.c:2577
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 cont_expand_zero fs/buffer.c:2504 [inline]
 cont_write_begin+0x2b0/0x984 fs/buffer.c:2567
 hfsplus_write_begin+0x7c/0xc4 fs/hfsplus/inode.c:46
 generic_perform_write+0x29c/0x868 mm/filemap.c:4189
 __generic_file_write_iter+0xfc/0x204 mm/filemap.c:4290
 generic_file_write_iter+0x108/0x4b0 mm/filemap.c:4316
 __kernel_write_iter+0x340/0x7a0 fs/read_write.c:612
 dump_emit_page fs/coredump.c:884 [inline]
 dump_user_range+0x378/0x6c8 fs/coredump.c:945
 elf_core_dump+0x336c/0x3c38 fs/binfmt_elf.c:2129
 do_coredump+0x1d28/0x29a0 fs/coredump.c:758
 get_signal+0xf6c/0x1500 kernel/signal.c:3021
 do_signal+0x1a4/0x3a04 arch/arm64/kernel/signal.c:1658
 do_notify_resume+0x74/0x1f4 arch/arm64/kernel/entry-common.c:148
 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:169 [inline]
 exit_to_user_mode arch/arm64/kernel/entry-common.c:178 [inline]
 el0_da+0xbc/0x178 arch/arm64/kernel/entry-common.c:605
 el0t_64_sync_handler+0xcc/0x108 arch/arm64/kernel/entry-common.c:765
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600
Code: 12002e7c 8b3c4359 d343ff33 12000b29 (38f56a68) 
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
   0:	12002e7c 	and	w28, w19, #0xfff
   4:	8b3c4359 	add	x25, x26, w28, uxtw
   8:	d343ff33 	lsr	x19, x25, #3
   c:	12000b29 	and	w9, w25, #0x7
* 10:	38f56a68 	ldrsb	w8, [x19, x21] <-- trapping instruction


---
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@...glegroups.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ