<?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 20:48:52 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-53161 — misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-53161</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;misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context&lt;/p&gt;
&lt;p&gt;There is a race between fastrpc_device_release() and the workqueue
that processes DSP responses. When the user closes the file descriptor,
fastrpc_device_release() frees the fastrpc_user structure. Concurrently,
an in-flight DSP invocation can complete and fastrpc_rpmsg_callback()
schedules context cleanup via schedule_work(&amp;amp;ctx-&amp;gt;put_work). If the
workqueue runs fastrpc_context_free() in parallel with or after
fastrpc_device_release() has freed the user structure, it dereferences
the freed fastrpc_user. Depending on the state of the context at the
time of the race, any one of the following accesses can be hit:&lt;/p&gt;
&lt;p&gt;1. fastrpc_buf_free() calls fastrpc_ipa_to_dma_addr(buf-&amp;gt;fl-&amp;gt;cctx, ...)
    to strip the SID bits from the stored IOVA before passing the
    physical address to dma_free_coherent().&lt;/p&gt;
&lt;p&gt;2. fastrpc_free_map() reads map-&amp;gt;fl-&amp;gt;cctx-&amp;gt;vmperms[0].vmid to
    reconstruct the source permission bitmask needed for the
    qcom_scm_assign_mem() call that returns memory from the DSP VM
    back to HLOS.&lt;/p&gt;
&lt;p&gt;3. fastrpc_free_map() acquires map-&amp;gt;fl-&amp;gt;lock to safely remove the
    map node from the fl-&amp;gt;maps list.&lt;/p&gt;
&lt;p&gt;The resulting use-after-free manifests as:&lt;/p&gt;
&lt;p&gt;pc : fastrpc_buf_free+0x38/0x80 [fastrpc]
  lr : fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_put_wq+0x78/0xa0 [fastrpc]
  process_one…&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;misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context&lt;/p&gt;
&lt;p&gt;There is a race between fastrpc_device_release() and the workqueue
that processes DSP responses. When the user closes the file descriptor,
fastrpc_device_release() frees the fastrpc_user structure. Concurrently,
an in-flight DSP invocation can complete and fastrpc_rpmsg_callback()
schedules context cleanup via schedule_work(&amp;amp;ctx-&amp;gt;put_work). If the
workqueue runs fastrpc_context_free() in parallel with or after
fastrpc_device_release() has freed the user structure, it dereferences
the freed fastrpc_user. Depending on the state of the context at the
time of the race, any one of the following accesses can be hit:&lt;/p&gt;
&lt;p&gt;1. fastrpc_buf_free() calls fastrpc_ipa_to_dma_addr(buf-&amp;gt;fl-&amp;gt;cctx, ...)
    to strip the SID bits from the stored IOVA before passing the
    physical address to dma_free_coherent().&lt;/p&gt;
&lt;p&gt;2. fastrpc_free_map() reads map-&amp;gt;fl-&amp;gt;cctx-&amp;gt;vmperms[0].vmid to
    reconstruct the source permission bitmask needed for the
    qcom_scm_assign_mem() call that returns memory from the DSP VM
    back to HLOS.&lt;/p&gt;
&lt;p&gt;3. fastrpc_free_map() acquires map-&amp;gt;fl-&amp;gt;lock to safely remove the
    map node from the fl-&amp;gt;maps list.&lt;/p&gt;
&lt;p&gt;The resulting use-after-free manifests as:&lt;/p&gt;
&lt;p&gt;pc : fastrpc_buf_free+0x38/0x80 [fastrpc]
  lr : fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_put_wq+0x78/0xa0 [fastrpc]
  process_one…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-53161</guid>
    </item>
  </channel>
</rss>
