1. 10 11月, 2022 4 次提交
  2. 08 11月, 2022 1 次提交
  3. 07 11月, 2022 6 次提交
  4. 03 11月, 2022 2 次提交
    • D
      wifi: Fix potential buffer overflow in 'brcmf_fweh_event_worker' · 1abe4c14
      Dokyung Song 提交于
      maillist inclusion
      category: bugfix
      bugzilla: https://gitee.com/src-openeuler/kernel/issues/I5YGD6
      CVE: CVE-2022-3628
      
      Reference: https://patchwork.kernel.org/project/linux-wireless/patch/20221021061359.GA550858@laguna/
      
      --------------------------------
      
      This patch fixes an intra-object buffer overflow in brcmfmac that occurs
      when the device provides a 'bsscfgidx' equal to or greater than the
      buffer size. The patch adds a check that leads to a safe failure if that
      is the case.
      
      This fixes CVE-2022-3628.
      
      UBSAN: array-index-out-of-bounds in drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
      index 52 is out of range for type 'brcmf_if *[16]'
      CPU: 0 PID: 1898 Comm: kworker/0:2 Tainted: G           O      5.14.0+ #132
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
      Workqueue: events brcmf_fweh_event_worker
      Call Trace:
       dump_stack_lvl+0x57/0x7d
       ubsan_epilogue+0x5/0x40
       __ubsan_handle_out_of_bounds+0x69/0x80
       ? memcpy+0x39/0x60
       brcmf_fweh_event_worker+0xae1/0xc00
       ? brcmf_fweh_call_event_handler.isra.0+0x100/0x100
       ? rcu_read_lock_sched_held+0xa1/0xd0
       ? rcu_read_lock_bh_held+0xb0/0xb0
       ? lockdep_hardirqs_on_prepare+0x273/0x3e0
       process_one_work+0x873/0x13e0
       ? lock_release+0x640/0x640
       ? pwq_dec_nr_in_flight+0x320/0x320
       ? rwlock_bug.part.0+0x90/0x90
       worker_thread+0x8b/0xd10
       ? __kthread_parkme+0xd9/0x1d0
       ? process_one_work+0x13e0/0x13e0
       kthread+0x379/0x450
       ? _raw_spin_unlock_irq+0x24/0x30
       ? set_kthread_struct+0x100/0x100
       ret_from_fork+0x1f/0x30
      
      ================================================================================
      general protection fault, probably for non-canonical address 0xe5601c0020023fff: 0000 [#1] SMP KASAN
      KASAN: maybe wild-memory-access in range [0x2b0100010011fff8-0x2b0100010011ffff]
      CPU: 0 PID: 1898 Comm: kworker/0:2 Tainted: G           O      5.14.0+ #132
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
      Workqueue: events brcmf_fweh_event_worker
      RIP: 0010:brcmf_fweh_call_event_handler.isra.0+0x42/0x100
      Code: 89 f5 53 48 89 fb 48 83 ec 08 e8 79 0b 38 fe 48 85 ed 74 7e e8 6f 0b 38 fe 48 89 ea 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 <80> 3c 02 00 0f 85 8b 00 00 00 4c 8b 7d 00 44 89 e0 48 ba 00 00 00
      RSP: 0018:ffffc9000259fbd8 EFLAGS: 00010207
      RAX: dffffc0000000000 RBX: ffff888115d8cd50 RCX: 0000000000000000
      RDX: 0560200020023fff RSI: ffffffff8304bc91 RDI: ffff888115d8cd50
      RBP: 2b0100010011ffff R08: ffff888112340050 R09: ffffed1023549809
      R10: ffff88811aa4c047 R11: ffffed1023549808 R12: 0000000000000045
      R13: ffffc9000259fca0 R14: ffff888112340050 R15: ffff888112340000
      FS:  0000000000000000(0000) GS:ffff88811aa00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 000000004053ccc0 CR3: 0000000112740000 CR4: 0000000000750ef0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      PKRU: 55555554
      Call Trace:
       brcmf_fweh_event_worker+0x117/0xc00
       ? brcmf_fweh_call_event_handler.isra.0+0x100/0x100
       ? rcu_read_lock_sched_held+0xa1/0xd0
       ? rcu_read_lock_bh_held+0xb0/0xb0
       ? lockdep_hardirqs_on_prepare+0x273/0x3e0
       process_one_work+0x873/0x13e0
       ? lock_release+0x640/0x640
       ? pwq_dec_nr_in_flight+0x320/0x320
       ? rwlock_bug.part.0+0x90/0x90
       worker_thread+0x8b/0xd10
       ? __kthread_parkme+0xd9/0x1d0
       ? process_one_work+0x13e0/0x13e0
       kthread+0x379/0x450
       ? _raw_spin_unlock_irq+0x24/0x30
       ? set_kthread_struct+0x100/0x100
       ret_from_fork+0x1f/0x30
      Modules linked in: 88XXau(O) 88x2bu(O)
      ---[ end trace 41d302138f3ff55a ]---
      RIP: 0010:brcmf_fweh_call_event_handler.isra.0+0x42/0x100
      Code: 89 f5 53 48 89 fb 48 83 ec 08 e8 79 0b 38 fe 48 85 ed 74 7e e8 6f 0b 38 fe 48 89 ea 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 <80> 3c 02 00 0f 85 8b 00 00 00 4c 8b 7d 00 44 89 e0 48 ba 00 00 00
      RSP: 0018:ffffc9000259fbd8 EFLAGS: 00010207
      RAX: dffffc0000000000 RBX: ffff888115d8cd50 RCX: 0000000000000000
      RDX: 0560200020023fff RSI: ffffffff8304bc91 RDI: ffff888115d8cd50
      RBP: 2b0100010011ffff R08: ffff888112340050 R09: ffffed1023549809
      R10: ffff88811aa4c047 R11: ffffed1023549808 R12: 0000000000000045
      R13: ffffc9000259fca0 R14: ffff888112340050 R15: ffff888112340000
      FS:  0000000000000000(0000) GS:ffff88811aa00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 000000004053ccc0 CR3: 0000000112740000 CR4: 0000000000750ef0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      PKRU: 55555554
      Kernel panic - not syncing: Fatal exception
      Reported-by: NDokyung Song <dokyungs@yonsei.ac.kr>
      Reported-by: NJisoo Jang <jisoo.jang@yonsei.ac.kr>
      Reported-by: NMinsuk Kang <linuxlovemin@yonsei.ac.kr>
      Reviewed-by: NArend van Spriel <aspriel@gmail.com>
      Signed-off-by: NDokyung Song <dokyung.song@gmail.com>
      Signed-off-by: NLiu Jian <liujian56@huawei.com>
      Reviewed-by: NYue Haibing <yuehaibing@huawei.com>
      Reviewed-by: NXiu Jianfeng <xiujianfeng@huawei.com>
      Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
      1abe4c14
    • R
      net: mvpp2: fix mvpp2 debugfs leak · 510d05d8
      Russell King (Oracle) 提交于
      mainline inclusion
      from mainline-v6.0-rc7
      commit 0152dfee
      category: bugfix
      bugzilla: https://gitee.com/src-openeuler/kernel/issues/I5W7AX
      CVE: CVE-2022-3535
      
      --------------------------------
      
      When mvpp2 is unloaded, the driver specific debugfs directory is not
      removed, which technically leads to a memory leak. However, this
      directory is only created when the first device is probed, so the
      hardware is present. Removing the module is only something a developer
      would to when e.g. testing out changes, so the module would be
      reloaded. So this memory leak is minor.
      
      The original attempt in commit fe2c9c61 ("net: mvpp2: debugfs: fix
      memory leak when using debugfs_lookup()") that was labelled as a memory
      leak fix was not, it fixed a refcount leak, but in doing so created a
      problem when the module is reloaded - the directory already exists, but
      mvpp2_root is NULL, so we lose all debugfs entries. This fix has been
      reverted.
      
      This is the alternative fix, where we remove the offending directory
      whenever the driver is unloaded.
      
      Fixes: 21da57a2 ("net: mvpp2: add a debugfs interface for the Header Parser")
      Signed-off-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: NMarcin Wojtas <mw@semihalf.com>
      Link: https://lore.kernel.org/r/E1ofOAB-00CzkG-UO@rmk-PC.armlinux.org.ukSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      Signed-off-by: NHui Tang <tanghui20@huawei.com>
      Reviewed-by: Nzhangqiao <zhangqiao22@huawei.com>
      Reviewed-by: NXiu Jianfeng <xiujianfeng@huawei.com>
      Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
      510d05d8
  5. 02 11月, 2022 21 次提交
  6. 01 11月, 2022 6 次提交