<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T02:56:03.011142+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-68416</id>
    <title>CVE-2026-68416 — mtd: fix double free and WARN_ON in add_mtd_device() error paths</title>
    <updated>2026-09-30T02:56:03.013624+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>mtd: fix double free and WARN_ON in add_mtd_device() error paths</p>
<p>When device_register() or mtd_nvmem_add() fails inside
add_mtd_device() for a partition, the error handling triggers
mtd_release() via put_device() or device_unregister(). mtd_release()
calls release_mtd_partition() which frees the mtd_info structure.
However, callers such as mtd_add_partition() and add_mtd_partitions()
also call free_partition() in their error paths, resulting in a double
free.</p>
<p>Additionally, release_mtd_partition() hits WARN_ON(!list_empty(
&amp;mtd-&gt;part.node)) because the partition node is still linked in the
parent's partitions list when the release callback fires from the
add_mtd_device() error path.</p>
<p>Fix this by overriding dev-&gt;type and dev-&gt;release before put_device()
in the error paths, so that device_release() invokes a no-op function
instead of mtd_release(). For the mtd_nvmem_add() failure case,
device_unregister() is replaced with device_del() to separate the
device removal from the final kobject reference drop, allowing the
override to take effect before put_device() is called.</p>
<p>The callers' error paths (list_del + free_partition) remain the sole
owners of mtd_info lifetime on add_mtd_device() failure, which is the
expected contract.</p>
<p>The normal partition teardown path is not affected: del_mtd_device()
goes through kref_put() -&gt; mtd_device_release() -&gt; device_unregister()
with dev-&gt;type still set to &amp;mtd_devtype, so…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-68416"/>
  </entry>
</feed>
