<?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 10:33:22 +0000</lastBuildDate>
    <item>
      <title>CVE-2022-49446 — nvdimm: Fix firmware activation deadlock scenarios</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2022-49446</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;nvdimm: Fix firmware activation deadlock scenarios&lt;/p&gt;
&lt;p&gt;Lockdep reports the following deadlock scenarios for CXL root device
power-management, device_prepare(), operations, and device_shutdown()
operations for &amp;#39;nd_region&amp;#39; devices:&lt;/p&gt;
&lt;p&gt;Chain exists of:
   &amp;amp;nvdimm_region_key --&amp;gt; &amp;amp;nvdimm_bus-&amp;gt;reconfig_mutex --&amp;gt; system_transition_mutex&lt;/p&gt;
&lt;p&gt;Possible unsafe locking scenario:&lt;/p&gt;
&lt;p&gt;CPU0                    CPU1
        ----                    ----
   lock(system_transition_mutex);
                                lock(&amp;amp;nvdimm_bus-&amp;gt;reconfig_mutex);
                                lock(system_transition_mutex);
   lock(&amp;amp;nvdimm_region_key);&lt;/p&gt;
&lt;p&gt;Chain exists of:
   &amp;amp;cxl_nvdimm_bridge_key --&amp;gt; acpi_scan_lock --&amp;gt; &amp;amp;cxl_root_key&lt;/p&gt;
&lt;p&gt;Possible unsafe locking scenario:&lt;/p&gt;
&lt;p&gt;CPU0                    CPU1
        ----                    ----
   lock(&amp;amp;cxl_root_key);
                                lock(acpi_scan_lock);
                                lock(&amp;amp;cxl_root_key);
   lock(&amp;amp;cxl_nvdimm_bridge_key);&lt;/p&gt;
&lt;p&gt;These stem from holding nvdimm_bus_lock() over hibernate_quiet_exec()
which walks the entire system device topology taking device_lock() along
the way. The nvdimm_bus_lock() is protecting against unregistration,
multiple simultaneous ops callers, and preventing activate_show() from
racing activate_store(). For the first 2, the lock is redundant.
Unregistration already flushes all ops users, and sysfs already prevents
multiple threads…&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;nvdimm: Fix firmware activation deadlock scenarios&lt;/p&gt;
&lt;p&gt;Lockdep reports the following deadlock scenarios for CXL root device
power-management, device_prepare(), operations, and device_shutdown()
operations for &amp;#39;nd_region&amp;#39; devices:&lt;/p&gt;
&lt;p&gt;Chain exists of:
   &amp;amp;nvdimm_region_key --&amp;gt; &amp;amp;nvdimm_bus-&amp;gt;reconfig_mutex --&amp;gt; system_transition_mutex&lt;/p&gt;
&lt;p&gt;Possible unsafe locking scenario:&lt;/p&gt;
&lt;p&gt;CPU0                    CPU1
        ----                    ----
   lock(system_transition_mutex);
                                lock(&amp;amp;nvdimm_bus-&amp;gt;reconfig_mutex);
                                lock(system_transition_mutex);
   lock(&amp;amp;nvdimm_region_key);&lt;/p&gt;
&lt;p&gt;Chain exists of:
   &amp;amp;cxl_nvdimm_bridge_key --&amp;gt; acpi_scan_lock --&amp;gt; &amp;amp;cxl_root_key&lt;/p&gt;
&lt;p&gt;Possible unsafe locking scenario:&lt;/p&gt;
&lt;p&gt;CPU0                    CPU1
        ----                    ----
   lock(&amp;amp;cxl_root_key);
                                lock(acpi_scan_lock);
                                lock(&amp;amp;cxl_root_key);
   lock(&amp;amp;cxl_nvdimm_bridge_key);&lt;/p&gt;
&lt;p&gt;These stem from holding nvdimm_bus_lock() over hibernate_quiet_exec()
which walks the entire system device topology taking device_lock() along
the way. The nvdimm_bus_lock() is protecting against unregistration,
multiple simultaneous ops callers, and preventing activate_show() from
racing activate_store(). For the first 2, the lock is redundant.
Unregistration already flushes all ops users, and sysfs already prevents
multiple threads…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2022-49446</guid>
    </item>
  </channel>
</rss>
