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
| ||
|
Date: Fri, 13 Nov 2020 08:35:29 +0000 From: "Zhang, Qiang" <Qiang.Zhang@...driver.com> To: syzbot <syzbot+47b26cd837ececfc666d@...kaller.appspotmail.com>, "benjamin.tissoires@...hat.com" <benjamin.tissoires@...hat.com>, "jikos@...nel.org" <jikos@...nel.org>, "linux-input@...r.kernel.org" <linux-input@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>, "syzkaller-bugs@...glegroups.com" <syzkaller-bugs@...glegroups.com> Subject: 回复: memory leak in __usbhid_submit_report ________________________________________ 发件人: syzbot <syzbot+47b26cd837ececfc666d@...kaller.appspotmail.com> 发送时间: 2020年11月11日 21:55 收件人: benjamin.tissoires@...hat.com; jikos@...nel.org; linux-input@...r.kernel.org; linux-kernel@...r.kernel.org; linux-usb@...r.kernel.org; syzkaller-bugs@...glegroups.com 主题: memory leak in __usbhid_submit_report [Please note this e-mail is from an EXTERNAL e-mail address] Hello, syzbot found the following issue on: HEAD commit: f8394f23 Linux 5.10-rc3 git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=12ebbdc6500000 kernel config: https://syzkaller.appspot.com/x/.config?x=a3f13716fa0212fd dashboard link: https://syzkaller.appspot.com/bug?extid=47b26cd837ececfc666d compiler: gcc (GCC) 10.1.0-syz 20200507 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=14497b82500000 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1586ff14500000 IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+47b26cd837ececfc666d@...kaller.appspotmail.com BUG: memory leak unreferenced object 0xffff8881097e5ec0 (size 32): comm "kworker/0:1", pid 7, jiffies 4294949214 (age 33.520s) hex dump (first 32 bytes): 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 When usb device disconnect the "raw_report" should be free in usbhid_stop. can we release it in this function, as shown below: usbhid_stop(struct hid_device *hid) { ........ for (index = 0; index < HID_CONTROL_FIFO_SIZE; index++) { if (usbhid->ctrl[index].raw_report) kfree(usbhid->ctrl[index].raw_report); if (usbhid->out[index].raw_report) kfree(usbhid->out[index].raw_report); } ............... } BUG: memory leak unreferenced object 0xffff8881120200c0 (size 32): comm "kworker/0:1", pid 7, jiffies 4294949214 (age 33.520s) hex dump (first 32 bytes): 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 BUG: memory leak unreferenced object 0xffff888107fa9420 (size 32): comm "kworker/0:1", pid 7, jiffies 4294949214 (age 33.520s) hex dump (first 32 bytes): 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 BUG: memory leak unreferenced object 0xffff888112020b60 (size 32): comm "kworker/1:4", pid 8569, jiffies 4294949237 (age 33.290s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 BUG: memory leak unreferenced object 0xffff888107fa9a20 (size 32): comm "kworker/1:3", pid 8559, jiffies 4294949241 (age 33.250s) hex dump (first 32 bytes): 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 BUG: memory leak unreferenced object 0xffff888112020940 (size 32): comm "kworker/1:3", pid 8559, jiffies 4294949241 (age 33.250s) hex dump (first 32 bytes): 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000008296eaa1>] __usbhid_submit_report+0x116/0x490 drivers/hid/usbhid/hid-core.c:588 [<00000000fe39f007>] usbhid_submit_report drivers/hid/usbhid/hid-core.c:638 [inline] [<00000000fe39f007>] usbhid_request+0x59/0xa0 drivers/hid/usbhid/hid-core.c:1272 [<00000000428a854b>] hidinput_led_worker+0x59/0x160 drivers/hid/hid-input.c:1507 [<000000001bb8d86d>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272 [<000000005d9a2f9c>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418 [<00000000dc999b29>] kthread+0x178/0x1b0 kernel/kthread.c:292 [<0000000099d5a9ee>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296 executing program executing program executing program executing program executing program executing program executing program --- 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. syzbot can test patches for this issue, for details see: https://goo.gl/tpsmEJ#testing-patches
Powered by blists - more mailing lists