<?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>Wed, 30 Sep 2026 16:40:44 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-80660 — hwmon: (occ) unregister sysfs devices outside occ lock</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-80660</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;hwmon: (occ) unregister sysfs devices outside occ lock&lt;/p&gt;
&lt;p&gt;occ_active(false) and occ_shutdown() unregister sysfs-backed devices while
occ-&amp;gt;lock is held.  hwmon_device_unregister() and sysfs_remove_group() can
wait for active sysfs callbacks to drain, and those callbacks can enter the
OCC update path and try to take occ-&amp;gt;lock again.  That gives the unregister
paths the lock ordering occ-&amp;gt;lock -&amp;gt; sysfs callback drain, while a callback
has the opposite edge sysfs callback -&amp;gt; occ-&amp;gt;lock.&lt;/p&gt;
&lt;p&gt;This issue was found by our static analysis tool and then manually
reviewed against the current tree.&lt;/p&gt;
&lt;p&gt;The grounded PoC kept the real unregister and callback carrier:&lt;/p&gt;
&lt;p&gt;occ_shutdown()
  hwmon_device_unregister()
  occ_show_temp_1()
  occ_update_response()&lt;/p&gt;
&lt;p&gt;Lockdep reported the circular dependency with occ_shutdown() already
holding the OCC mutex and hwmon_device_unregister() waiting on the sysfs
side:&lt;/p&gt;
&lt;p&gt;WARNING: possible circular locking dependency detected
  ... (sysfs_lock) ... at: hwmon_device_unregister+0x12/0x30 [vuln_msv]
  ... (&amp;amp;test_occ.lock) ... at: occ_shutdown.constprop.0+0xe/0x40 [vuln_msv]
  occ_update_response.isra.0+0xb/0x20 [vuln_msv]
  occ_show_temp_1.constprop.0.isra.0+0x23/0x40 [vuln_msv]
  *** DEADLOCK ***&lt;/p&gt;
&lt;p&gt;Serialize hwmon registration and removal with a separate hwmon_lock.
Under that lock, detach occ-&amp;gt;hwmon and update occ-&amp;gt;active while occ-&amp;gt;lock
is held so concurrent OCC state changes still see a stable sta…&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;hwmon: (occ) unregister sysfs devices outside occ lock&lt;/p&gt;
&lt;p&gt;occ_active(false) and occ_shutdown() unregister sysfs-backed devices while
occ-&amp;gt;lock is held.  hwmon_device_unregister() and sysfs_remove_group() can
wait for active sysfs callbacks to drain, and those callbacks can enter the
OCC update path and try to take occ-&amp;gt;lock again.  That gives the unregister
paths the lock ordering occ-&amp;gt;lock -&amp;gt; sysfs callback drain, while a callback
has the opposite edge sysfs callback -&amp;gt; occ-&amp;gt;lock.&lt;/p&gt;
&lt;p&gt;This issue was found by our static analysis tool and then manually
reviewed against the current tree.&lt;/p&gt;
&lt;p&gt;The grounded PoC kept the real unregister and callback carrier:&lt;/p&gt;
&lt;p&gt;occ_shutdown()
  hwmon_device_unregister()
  occ_show_temp_1()
  occ_update_response()&lt;/p&gt;
&lt;p&gt;Lockdep reported the circular dependency with occ_shutdown() already
holding the OCC mutex and hwmon_device_unregister() waiting on the sysfs
side:&lt;/p&gt;
&lt;p&gt;WARNING: possible circular locking dependency detected
  ... (sysfs_lock) ... at: hwmon_device_unregister+0x12/0x30 [vuln_msv]
  ... (&amp;amp;test_occ.lock) ... at: occ_shutdown.constprop.0+0xe/0x40 [vuln_msv]
  occ_update_response.isra.0+0xb/0x20 [vuln_msv]
  occ_show_temp_1.constprop.0.isra.0+0x23/0x40 [vuln_msv]
  *** DEADLOCK ***&lt;/p&gt;
&lt;p&gt;Serialize hwmon registration and removal with a separate hwmon_lock.
Under that lock, detach occ-&amp;gt;hwmon and update occ-&amp;gt;active while occ-&amp;gt;lock
is held so concurrent OCC state changes still see a stable sta…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-80660</guid>
    </item>
  </channel>
</rss>
