Zekun Shen <bruceshenzk@xxxxxxxxx> wrote: > Currently, with an unknown recv_type, mwifiex_usb_recv > just return -1 without restoring the skb. Next time > mwifiex_usb_rx_complete is invoked with the same skb, > calling skb_put causes skb_over_panic. > > The bug is triggerable with a compromised/malfunctioning > usb device. After applying the patch, skb_over_panic > no longer shows up with the same input. > > Attached is the panic report from fuzzing. > skbuff: skb_over_panic: text:000000003bf1b5fa > len:2048 put:4 head:00000000dd6a115b data:000000000a9445d8 > tail:0x844 end:0x840 dev:<NULL> > kernel BUG at net/core/skbuff.c:109! > invalid opcode: 0000 [#1] SMP KASAN NOPTI > CPU: 0 PID: 198 Comm: in:imklog Not tainted 5.6.0 #60 > RIP: 0010:skb_panic+0x15f/0x161 > Call Trace: > <IRQ> > ? mwifiex_usb_rx_complete+0x26b/0xfcd [mwifiex_usb] > skb_put.cold+0x24/0x24 > mwifiex_usb_rx_complete+0x26b/0xfcd [mwifiex_usb] > __usb_hcd_giveback_urb+0x1e4/0x380 > usb_giveback_urb_bh+0x241/0x4f0 > ? __hrtimer_run_queues+0x316/0x740 > ? __usb_hcd_giveback_urb+0x380/0x380 > tasklet_action_common.isra.0+0x135/0x330 > __do_softirq+0x18c/0x634 > irq_exit+0x114/0x140 > smp_apic_timer_interrupt+0xde/0x380 > apic_timer_interrupt+0xf/0x20 > </IRQ> > > Reported-by: Brendan Dolan-Gavitt <brendandg@xxxxxxx> > Signed-off-by: Zekun Shen <bruceshenzk@xxxxxxxxx> Patch applied to wireless-drivers-next.git, thanks. 04d80663f67c mwifiex: Fix skb_over_panic in mwifiex_usb_recv() -- https://patchwork.kernel.org/project/linux-wireless/patch/YX4CqjfRcTa6bVL+@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches