<?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-10-01T19:38:45.598035+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-80563</id>
    <title>CVE-2026-80563 — gpio: sloppy-logic-analyzer: fix use-after-free via debugfs trigger on unbind</title>
    <updated>2026-10-01T19:38:45.897739+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>gpio: sloppy-logic-analyzer: fix use-after-free via debugfs trigger on unbind</p>
<p>The "trigger" debugfs file has a hand-rolled -&gt;write handler
(trigger_write()) that dereferences the per-device gpio_la_poll_priv. The
file is created with debugfs_create_file_unsafe(), and the handler never
takes a debugfs reference. Nothing keeps the object alive while the
handler runs.</p>
<p>priv is allocated with devm_kzalloc(). devres frees it when the platform
device is unbound. debugfs_create_file_unsafe() installs no full_proxy
wrapper, so debugfs_remove_recursive() in gpio_la_poll_remove() does not
wait for an in-flight trigger_write(). The blob_lock taken there does not
help, because trigger_write() never takes it. A write that races an unbind
therefore writes into freed memory:</p>
<p>trigger_write()                  gpio_la_poll_remove()
    priv = m-&gt;private
    buf = memdup_user()  [may sleep]
                                     mutex_lock(&amp;priv-&gt;blob_lock)
                                     debugfs_remove_recursive()  [no wait]
                                     mutex_unlock(&amp;priv-&gt;blob_lock)
                                   (remove returns; devres frees priv)
    priv-&gt;trig_data = buf   &lt;-- use-after-free write
    priv-&gt;trig_len  = count</p>
<p>The race is reachable by root via
/sys/bus/platform/drivers/gpio-sloppy-logic-analyzer/unbind.</p>
<p>Create "trigger" with debugfs_create_file() instead. Its full_proxy
wrapper makes d…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-80563"/>
  </entry>
</feed>
