<?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>Thu, 01 Oct 2026 21:35:26 +0000</lastBuildDate>
    <item>
      <title>CVE-2023-54117 — s390/dcssblk: fix kernel crash with list_add corruption</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2023-54117</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;s390/dcssblk: fix kernel crash with list_add corruption&lt;/p&gt;
&lt;p&gt;Commit fb08a1908cb1 (&amp;#34;dax: simplify the dax_device &amp;lt;-&amp;gt; gendisk
association&amp;#34;) introduced new logic for gendisk association, requiring
drivers to explicitly call dax_add_host() and dax_remove_host().&lt;/p&gt;
&lt;p&gt;For dcssblk driver, some dax_remove_host() calls were missing, e.g. in
device remove path. The commit also broke error handling for out_dax case
in device add path, resulting in an extra put_device() w/o the previous
get_device() in that case.&lt;/p&gt;
&lt;p&gt;This lead to stale xarray entries after device add / remove cycles. In the
case when a previously used struct gendisk pointer (xarray index) would be
used again, because blk_alloc_disk() happened to return such a pointer, the
xa_insert() in dax_add_host() would fail and go to out_dax, doing the extra
put_device() in the error path. In combination with an already flawed error
handling in dcssblk (device_register() cleanup), which needs to be
addressed in a separate patch, this resulted in a missing device_del() /
klist_del(), and eventually in the kernel crash with list_add corruption on
a subsequent device_add() / klist_add().&lt;/p&gt;
&lt;p&gt;Fix this by adding the missing dax_remove_host() calls, and also move the
put_device() in the error path to restore the previous logic.&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;s390/dcssblk: fix kernel crash with list_add corruption&lt;/p&gt;
&lt;p&gt;Commit fb08a1908cb1 (&amp;#34;dax: simplify the dax_device &amp;lt;-&amp;gt; gendisk
association&amp;#34;) introduced new logic for gendisk association, requiring
drivers to explicitly call dax_add_host() and dax_remove_host().&lt;/p&gt;
&lt;p&gt;For dcssblk driver, some dax_remove_host() calls were missing, e.g. in
device remove path. The commit also broke error handling for out_dax case
in device add path, resulting in an extra put_device() w/o the previous
get_device() in that case.&lt;/p&gt;
&lt;p&gt;This lead to stale xarray entries after device add / remove cycles. In the
case when a previously used struct gendisk pointer (xarray index) would be
used again, because blk_alloc_disk() happened to return such a pointer, the
xa_insert() in dax_add_host() would fail and go to out_dax, doing the extra
put_device() in the error path. In combination with an already flawed error
handling in dcssblk (device_register() cleanup), which needs to be
addressed in a separate patch, this resulted in a missing device_del() /
klist_del(), and eventually in the kernel crash with list_add corruption on
a subsequent device_add() / klist_add().&lt;/p&gt;
&lt;p&gt;Fix this by adding the missing dax_remove_host() calls, and also move the
put_device() in the error path to restore the previous logic.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2023-54117</guid>
    </item>
  </channel>
</rss>
