From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4816E63CE for ; Thu, 5 Jan 2023 12:28:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 624FFC433EF; Thu, 5 Jan 2023 12:28:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1672921737; bh=gAgsYgqYRCbmwEZsn8idYeijbpgxSOVxoTFeEuqJovc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=aV3JlQIyjxyuA3vUExci1H79dAHBeL8Cp6ujv9F3w829Pk4cGo/tRIIzJFn0iPGhc qYJMCEmSZRuWwTognoBFiDBz6ut4Vqw5pBJ2411ffH07RvbXoOMZglRjmcgvXZ3I9U naDLkvsyj45hLZ82MHdjczt41Pd5ho8Z/KwrV7Yg= Date: Thu, 5 Jan 2023 13:28:48 +0100 From: Greg Kroah-Hartman To: Lee Jones Cc: stable@vger.kernel.org, patches@lists.linux.dev, Andrzej Pietrasiewicz , John Keeping , Sasha Levin Subject: Re: [PATCH 5.15 481/731] usb: gadget: f_hid: fix f_hidg lifetime vs cdev Message-ID: References: <20221228144256.536395940@linuxfoundation.org> <20221228144310.493605271@linuxfoundation.org> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Thu, Jan 05, 2023 at 12:18:18PM +0000, Lee Jones wrote: > On Wed, 28 Dec 2022, Greg Kroah-Hartman wrote: > > > From: John Keeping > > > > [ Upstream commit 89ff3dfac604614287ad5aad9370c3f984ea3f4b ] > > > > The embedded struct cdev does not have its lifetime correctly tied to > > the enclosing struct f_hidg, so there is a use-after-free if /dev/hidgN > > is held open while the gadget is deleted. > > > > This can readily be replicated with libusbgx's example programs (for > > conciseness - operating directly via configfs is equivalent): > > > > gadget-hid > > exec 3<> /dev/hidg0 > > gadget-vid-pid-remove > > exec 3<&- > > > > Pull the existing device up in to struct f_hidg and make use of the > > cdev_device_{add,del}() helpers. This changes the lifetime of the > > device object to match struct f_hidg, but note that it is still added > > and deleted at the same time. > > > > Fixes: 71adf1189469 ("USB: gadget: add HID gadget driver") > > Tested-by: Lee Jones > > Reviewed-by: Andrzej Pietrasiewicz > > Reviewed-by: Lee Jones > > Signed-off-by: John Keeping > > Link: https://lore.kernel.org/r/20221122123523.3068034-2-john@metanate.com > > Signed-off-by: Greg Kroah-Hartman > > Signed-off-by: Sasha Levin > > --- > > drivers/usb/gadget/function/f_hid.c | 52 ++++++++++++++++------------- > > 1 file changed, 28 insertions(+), 24 deletions(-) > > Dear Stable, > > Would you be kind enough to take this back as far back as linux.4.14.y > please? There is a trivial fix-up required for kernels older than > v5.15, but it's the same fix-up back through v4.14. This is already in the queue for 5.10, 5.4, and 4.19, but for some reason not in 4.14. Can you verify that the 4.19 version works there too? thanks, greg k-h