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 687B01A2544 for ; Wed, 26 Feb 2025 02:15:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740536106; cv=none; b=oh8yjHBN162E60iBX+jFov4R9VNWfk+Ik8KCBsdtpqlHVPf94/6h9OCJSxTu943wha4otlveXFHNsoNo7rlYb7H4+IJVyiflmJ+fBVjojwGVXEgd56Q8nS9BSNYYt2rf6kXmqyNQLbWxu0Nijs7fMD1H/fOWhL2QU5Vnbn9d64s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740536106; c=relaxed/simple; bh=/0MkQKqwlSlycQoWYgCADewRtKcIdMQHKcj8DOfOKes=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Tp15oJq82BGAioeo4TkNyIqtN9vlH7QHRpNa57VckTyLgS3wH44wKe0hH9gBMBk/UjuHnZKrgyePw7BuG6hUzCxNEGq4h9FYltcKt6Dc1RJBghv1CdriVaD0GhPVCfZ+zhtpjNUq7sGaJSPscRLGMi6xSXbS66RJ7IwnpBQenbc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=j7Ckh26+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="j7Ckh26+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36941C4CEDD; Wed, 26 Feb 2025 02:15:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1740536106; bh=/0MkQKqwlSlycQoWYgCADewRtKcIdMQHKcj8DOfOKes=; h=From:To:Cc:Subject:Date:Reply-to:From; b=j7Ckh26+SkNV3TdK9c8KuCCXuA2wz5kxgTqxC1QQEqQOFY4VA8x7uxHM3qdAkOV70 6BqEfryCYgI3AW+n6J1xIWIyGZQG4gv4G1cC02ItavOVwyhPBfAK4u0piri7yvoERI /dxBI1JtL1EeL3aWaD9o5F1Ouo6QWhwrldF3i6sU= From: Greg Kroah-Hartman To: linux-cve-announce@vger.kernel.org Cc: Greg Kroah-Hartman Subject: CVE-2022-49501: usbnet: Run unregister_netdev() before unbind() again Date: Wed, 26 Feb 2025 03:12:55 +0100 Message-ID: <2025022607-CVE-2022-49501-6f2e@gregkh> X-Mailer: git-send-email 2.48.1 Precedence: bulk X-Mailing-List: linux-cve-announce@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Reply-to: , X-Developer-Signature: v=1; a=openpgp-sha256; l=3057; i=gregkh@linuxfoundation.org; h=from:subject:message-id; bh=/0MkQKqwlSlycQoWYgCADewRtKcIdMQHKcj8DOfOKes=; b=owGbwMvMwCRo6H6F97bub03G02pJDOn7yv/Xrd+lsLPmEDvzhaV76zK2nJcq8uQJuOZqFnT5h EPxMfP8jlgWBkEmBlkxRZYv23iO7q84pOhlaHsaZg4rE8gQBi5OAZiIxg+G+a7/bd7dUL25Zpn7 g6z/1R8VpVZIGzHMs3PiO/IlbG+X8Ff/eiX3qAOqRzrFAA== X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 Content-Transfer-Encoding: 8bit Description =========== In the Linux kernel, the following vulnerability has been resolved: usbnet: Run unregister_netdev() before unbind() again Commit 2c9d6c2b871d ("usbnet: run unbind() before unregister_netdev()") sought to fix a use-after-free on disconnect of USB Ethernet adapters. It turns out that a different fix is necessary to address the issue: https://lore.kernel.org/netdev/18b3541e5372bc9b9fc733d422f4e698c089077c.1650177997.git.lukas@wunner.de/ So the commit was not necessary. The commit made binding and unbinding of USB Ethernet asymmetrical: Before, usbnet_probe() first invoked the ->bind() callback and then register_netdev(). usbnet_disconnect() mirrored that by first invoking unregister_netdev() and then ->unbind(). Since the commit, the order in usbnet_disconnect() is reversed and no longer mirrors usbnet_probe(). One consequence is that a PHY disconnected (and stopped) in ->unbind() is afterwards stopped once more by unregister_netdev() as it closes the netdev before unregistering. That necessitates a contortion in ->stop() because the PHY may only be stopped if it hasn't already been disconnected. Reverting the commit allows making the call to phy_stop() unconditional in ->stop(). The Linux kernel CVE team has assigned CVE-2022-49501 to this issue. Affected and fixed versions =========================== Fixed in 5.15.46 with commit 6d5deb242874d924beccf7eb3cef04c1c3b0da79 Fixed in 5.17.14 with commit fbda837107f9bd4ec658d2aa88c6856dba606f06 Fixed in 5.18.3 with commit 969a1b3ea3cb7d58a16fe12fd1b04bfc0ea40509 Fixed in 5.19 with commit d1408f6b4dd78fb1b9e26bcf64477984e5f85409 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2022-49501 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: drivers/net/usb/asix_devices.c drivers/net/usb/smsc95xx.c drivers/net/usb/usbnet.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/6d5deb242874d924beccf7eb3cef04c1c3b0da79 https://git.kernel.org/stable/c/fbda837107f9bd4ec658d2aa88c6856dba606f06 https://git.kernel.org/stable/c/969a1b3ea3cb7d58a16fe12fd1b04bfc0ea40509 https://git.kernel.org/stable/c/d1408f6b4dd78fb1b9e26bcf64477984e5f85409