<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 08:51:01 +0000</lastBuildDate>
    <item>
      <title>CVE-2022-49501 — usbnet: Run unregister_netdev() before unbind() again</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2022-49501</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;usbnet: Run unregister_netdev() before unbind() again&lt;/p&gt;
&lt;p&gt;Commit 2c9d6c2b871d (&amp;#34;usbnet: run unbind() before unregister_netdev()&amp;#34;)
sought to fix a use-after-free on disconnect of USB Ethernet adapters.&lt;/p&gt;
&lt;p&gt;It turns out that a different fix is necessary to address the issue:
https://lore.kernel.org/netdev/18b3541e5372bc9b9fc733d422f4e698c089077c.1650177997.git.lukas@wunner.de/&lt;/p&gt;
&lt;p&gt;So the commit was not necessary.&lt;/p&gt;
&lt;p&gt;The commit made binding and unbinding of USB Ethernet asymmetrical:
Before, usbnet_probe() first invoked the -&amp;gt;bind() callback and then
register_netdev().  usbnet_disconnect() mirrored that by first invoking
unregister_netdev() and then -&amp;gt;unbind().&lt;/p&gt;
&lt;p&gt;Since the commit, the order in usbnet_disconnect() is reversed and no
longer mirrors usbnet_probe().&lt;/p&gt;
&lt;p&gt;One consequence is that a PHY disconnected (and stopped) in -&amp;gt;unbind()
is afterwards stopped once more by unregister_netdev() as it closes the
netdev before unregistering.  That necessitates a contortion in -&amp;gt;stop()
because the PHY may only be stopped if it hasn&amp;#39;t already been
disconnected.&lt;/p&gt;
&lt;p&gt;Reverting the commit allows making the call to phy_stop() unconditional
in -&amp;gt;stop().&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;usbnet: Run unregister_netdev() before unbind() again&lt;/p&gt;
&lt;p&gt;Commit 2c9d6c2b871d (&amp;#34;usbnet: run unbind() before unregister_netdev()&amp;#34;)
sought to fix a use-after-free on disconnect of USB Ethernet adapters.&lt;/p&gt;
&lt;p&gt;It turns out that a different fix is necessary to address the issue:
https://lore.kernel.org/netdev/18b3541e5372bc9b9fc733d422f4e698c089077c.1650177997.git.lukas@wunner.de/&lt;/p&gt;
&lt;p&gt;So the commit was not necessary.&lt;/p&gt;
&lt;p&gt;The commit made binding and unbinding of USB Ethernet asymmetrical:
Before, usbnet_probe() first invoked the -&amp;gt;bind() callback and then
register_netdev().  usbnet_disconnect() mirrored that by first invoking
unregister_netdev() and then -&amp;gt;unbind().&lt;/p&gt;
&lt;p&gt;Since the commit, the order in usbnet_disconnect() is reversed and no
longer mirrors usbnet_probe().&lt;/p&gt;
&lt;p&gt;One consequence is that a PHY disconnected (and stopped) in -&amp;gt;unbind()
is afterwards stopped once more by unregister_netdev() as it closes the
netdev before unregistering.  That necessitates a contortion in -&amp;gt;stop()
because the PHY may only be stopped if it hasn&amp;#39;t already been
disconnected.&lt;/p&gt;
&lt;p&gt;Reverting the commit allows making the call to phy_stop() unconditional
in -&amp;gt;stop().&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2022-49501</guid>
    </item>
  </channel>
</rss>
