[syzbot] [pm?] KASAN: invalid-access Read in swsusp_save

syzbot <[email protected]>
Newsgroups org.kernel.vger.linux-pm,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hello,

syzbot found the following issue on:

HEAD commit:    3b5f4b83c4ab Merge tag 'for-7.2-rc5-tag' of git://git.kern..
git tree:       https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux master
console output: https://syzkaller.appspot.com/x/log.txt?x=11f35632580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=6c49f4c107ee8924
dashboard link: https://syzkaller.appspot.com/bug?extid=461576769f21a04b4bc0
compiler:       aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
userspace arch: arm64

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

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/fa3fbcfdac58/non_bootable_disk-3b5f4b83.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/dd359154ea98/vmlinux-3b5f4b83.xz
kernel image: https://storage.googleapis.com/syzbot-assets/4ae5720d1f28/Image-3b5f4b83.gz.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: [email protected]

printk: Suspending console(s) (use no_console_suspend to debug)
Disabling non-boot CPUs ...
psci: CPU1 killed (polled 0 ms)
hibernate: Saved 0 MTE pages
==================================================================
BUG: KASAN: invalid-access in do_copy_page kernel/power/snapshot.c:1436 [inline]
BUG: KASAN: invalid-access in safe_copy_page kernel/power/snapshot.c:1457 [inline]
BUG: KASAN: invalid-access in copy_data_page kernel/power/snapshot.c:1508 [inline]
BUG: KASAN: invalid-access in copy_data_pages kernel/power/snapshot.c:1543 [inline]
BUG: KASAN: invalid-access in swsusp_save+0x2cc/0x590 kernel/power/snapshot.c:2133
Read at addr f4f000000341f100 by task syz.1.8/3536
Pointer tag: [f4], memory tag: [fe]

CPU: 0 UID: 0 PID: 3536 Comm: syz.1.8 Not tainted syzkaller #0 PREEMPT 
Hardware name: linux,dummy-virt (DT)
Call trace:
 dump_backtrace arch/arm64/kernel/stacktrace.c:498 [inline] (C)
 show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x60/0x80 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:378 [inline]
 print_report+0x1c4/0x4b0 mm/kasan/report.c:482
 kasan_report+0x84/0xac mm/kasan/report.c:595
 report_tag_fault arch/arm64/mm/fault.c:368 [inline]
 do_tag_recovery arch/arm64/mm/fault.c:380 [inline]
 __do_kernel_fault+0x1b4/0x220 arch/arm64/mm/fault.c:424
 do_bad_area+0x68/0x80 arch/arm64/mm/fault.c:529
 do_tag_check_fault+0x34/0x44 arch/arm64/mm/fault.c:909
 do_mem_abort+0x40/0x90 arch/arm64/mm/fault.c:985
 el1_abort+0x44/0x64 arch/arm64/kernel/entry-common.c:322
 el1h_64_sync_handler+0x50/0xac arch/arm64/kernel/entry-common.c:449
 el1h_64_sync+0x6c/0x70 arch/arm64/kernel/entry.S:589
 do_copy_page kernel/power/snapshot.c:1436 [inline] (P)
 safe_copy_page kernel/power/snapshot.c:1457 [inline] (P)
 copy_data_page kernel/power/snapshot.c:1508 [inline] (P)
 copy_data_pages kernel/power/snapshot.c:1543 [inline] (P)
 swsusp_save+0x2cc/0x590 kernel/power/snapshot.c:2133 (P)
 swsusp_arch_suspend+0x74/0x618 arch/arm64/kernel/hibernate.c:355
 create_image kernel/power/hibernate.c:358 [inline]
 hibernation_snapshot+0x208/0x438 kernel/power/hibernate.c:442
 hibernate+0x1cc/0x3c0 kernel/power/hibernate.c:811
 state_store+0xe8/0xf4 kernel/power/main.c:821
 kobj_attr_store+0x18/0x34 lib/kobject.c:840
 sysfs_kf_write+0x7c/0x98 fs/sysfs/file.c:145
 kernfs_fop_write_iter+0x138/0x200 fs/kernfs/file.c:345
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x244/0x36c fs/read_write.c:687
 ksys_write+0x70/0x108 fs/read_write.c:739
 __do_sys_write fs/read_write.c:750 [inline]
 __se_sys_write fs/read_write.c:747 [inline]
 __arm64_sys_write+0x1c/0x30 fs/read_write.c:747
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x54/0x10c arch/arm64/kernel/syscall.c:49
 el0_svc_common.constprop.0+0x40/0xe0 arch/arm64/kernel/syscall.c:121
 do_el0_svc+0x1c/0x34 arch/arm64/kernel/syscall.c:140
 el0_svc+0x38/0x1fc arch/arm64/kernel/entry-common.c:736
 el0t_64_sync_handler+0xa0/0xf0 arch/arm64/kernel/entry-common.c:755
 el0t_64_sync+0x1a4/0x1a8 arch/arm64/kernel/entry.S:594

The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x4341c
head: order:2 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
flags: 0x1ffec0000000040(head|node=0|zone=0|lastcpupid=0x7ff|kasantag=0xb)
page_type: f8(unknown)
raw: 01ffec0000000040 0000000000000000 dead000000000122 0000000000000000
raw: 0000000000000000 0000000000000000 00000000f8000000 0000000000000000
head: 01ffec0000000040 0000000000000000 dead000000000122 0000000000000000
head: 0000000000000000 0000000000000000 00000000f8000000 0000000000000000
head: 01ffec0000000002 ffffc1ffc00d0701 00000000ffffffff 00000000ffffffff
head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000004
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 fff000000341ef00: f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4
 fff000000341f000: f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4
>fff000000341f100: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe
                   ^
 fff000000341f200: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe
 fff000000341f300: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe
==================================================================
Enabling non-boot CPUs ...
CPU1 is up
PM: Cannot find swap device, try swapon -a
PM: Cannot get swap writer
OOM killer enabled.
Restarting tasks: Starting
Restarting tasks: Done
PM: hibernation: hibernation exit


---
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 [email protected].

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.