From: Greg KH <gregkh@linuxfoundation.org>
To: jiantao zhang <water.zhangjiantao@huawei.com>
Cc: stern@rowland.harvard.edu, jakobkoschel@gmail.com,
geert+renesas@glider.be, colin.i.king@gmail.com,
薛涛 <xuetao09@huawei.com>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Caiyadong <caiyadong@huawei.com>,
xuhaiyang <xuhaiyang5@hisilicon.com>
Subject: Re: [PATCH v3] USB: gadget: Fix use-after-free during usb config switch
Date: Tue, 15 Nov 2022 14:40:22 +0100 [thread overview]
Message-ID: <Y3OWxrVQzglNtrEM@kroah.com> (raw)
In-Reply-To: <d3393e2f-a79c-d2c1-f752-71bd21a7ddbf@huawei.com>
On Tue, Nov 15, 2022 at 08:52:02PM +0800, jiantao zhang wrote:
> In the process of switching USB config from rndis to other config,
> if the hardware does not support the ->pullup callback, or the
> hardware encounters a low probability fault, both of them may cause
> the ->pullup callback to fail, which will then cause a system panic
> (use after free).
>
> The gadget drivers sometimes need to be unloaded regardless of the
> hardware's behavior.
>
> Analysis as follows:
> =======================================================================
> (1) write /config/usb_gadget/g1/UDC "none"
>
> gether_disconnect+0x2c/0x1f8
> rndis_disable+0x4c/0x74
> composite_disconnect+0x74/0xb0
> configfs_composite_disconnect+0x60/0x7c
> usb_gadget_disconnect+0x70/0x124
> usb_gadget_unregister_driver+0xc8/0x1d8
> gadget_dev_desc_UDC_store+0xec/0x1e4
>
> (2) rm /config/usb_gadget/g1/configs/b.1/f1
>
> rndis_deregister+0x28/0x54
> rndis_free+0x44/0x7c
> usb_put_function+0x14/0x1c
> config_usb_cfg_unlink+0xc4/0xe0
> configfs_unlink+0x124/0x1c8
> vfs_unlink+0x114/0x1dc
>
> (3) rmdir /config/usb_gadget/g1/functions/rndis.gs4
>
> panic+0x1fc/0x3d0
> do_page_fault+0xa8/0x46c
> do_mem_abort+0x3c/0xac
> el1_sync_handler+0x40/0x78
> 0xffffff801138f880
> rndis_close+0x28/0x34
> eth_stop+0x74/0x110
> dev_close_many+0x48/0x194
> rollback_registered_many+0x118/0x814
> unregister_netdev+0x20/0x30
> gether_cleanup+0x1c/0x38
> rndis_attr_release+0xc/0x14
> kref_put+0x74/0xb8
> configfs_rmdir+0x314/0x374
>
> If gadget->ops->pullup() return an error, function rndis_close() will be
> called, then it will causes a use-after-free problem.
> =======================================================================
>
> Fixes: 0a55187a1ec8 ("USB: gadget core: Issue ->disconnect() callback from
> usb_gadget_disconnect()")
> Signed-off-by: Jiantao Zhang <water.zhangjiantao@huawei.com>
> Signed-off-by: TaoXue <xuetao09@huawei.com>
> ---
> V2 -> V3: Solved the format issues of Fixes and backtraces.
> V1 -> V2: V1 will affect the original function, V2 just move the callback
> after "if" statement, so that the original function will not be affected.
> And fixed formatting issues.
This patch is really corrupted and can not be applied. How did you
generate it?
The email is also showing up as unauthenticated and seems like it might
be spoofed from your huawei.com domain, which is not good.
Please fix up both of those issues if you wish for this to be accepted.
thanks,
greg k-h
next prev parent reply other threads:[~2022-11-15 13:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20221115065404.6067-1-xuetao09@huawei.com>
2022-11-15 12:52 ` [PATCH v3] USB: gadget: Fix use-after-free during usb config switch jiantao zhang
2022-11-15 13:40 ` Greg KH [this message]
2022-11-15 15:45 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y3OWxrVQzglNtrEM@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=caiyadong@huawei.com \
--cc=colin.i.king@gmail.com \
--cc=geert+renesas@glider.be \
--cc=jakobkoschel@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=water.zhangjiantao@huawei.com \
--cc=xuetao09@huawei.com \
--cc=xuhaiyang5@hisilicon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).