Messages in this thread | | | Subject | Re: [PATCH] usb: gadget: use after free in dev_config | From | Hangyu Hua <> | Date | Thu, 30 Dec 2021 10:15:02 +0800 |
| |
Thank for your suggesions. I will break this up into two separate patches later. And i think it's necessary to clear up dev->config and dev->hs_config and dev->dev. For example, dev->hs_config is used in ep0_read() which may lead a UAF.
Thanks.
On 2021/12/30 上午5:11, Alan Stern wrote: > On Tue, Dec 28, 2021 at 05:21:26PM +0800, Hangyu Hua wrote: >> There are two bugs: > > You should break this up into two separate patches, one for each bug. > >> dev->buf does not need to be released if it already exists before >> executing dev_config. > > That's right. The call to dev_config should fail without changing any > of the stored values. > >> dev->config and dev->hs_config and dev->dev need to be cleaned if >> dev_config fails to avoid UAF. > > Do they really need to be cleared? I think if dev_config fails then > those pointers never get used, so it doesn't matter what they contain. > > Of course, clearing them doesn't hurt, but it would be best to clear > all of them in the "fail:" part of the routine. And then you would > want to change the pathway where usb_gadget_probe_driver fails, to make > it go to "fail:" also. > > Alan Stern >
| |