<?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 15:20:44 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-43050 — atm: lec: fix use-after-free in sock_def_readable()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-43050</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;atm: lec: fix use-after-free in sock_def_readable()&lt;/p&gt;
&lt;p&gt;A race condition exists between lec_atm_close() setting priv-&amp;gt;lecd
to NULL and concurrent access to priv-&amp;gt;lecd in send_to_lecd(),
lec_handle_bridge(), and lec_atm_send(). When the socket is freed
via RCU while another thread is still using it, a use-after-free
occurs in sock_def_readable() when accessing the socket&amp;#39;s wait queue.&lt;/p&gt;
&lt;p&gt;The root cause is that lec_atm_close() clears priv-&amp;gt;lecd without
any synchronization, while callers dereference priv-&amp;gt;lecd without
any protection against concurrent teardown.&lt;/p&gt;
&lt;p&gt;Fix this by converting priv-&amp;gt;lecd to an RCU-protected pointer:
- Mark priv-&amp;gt;lecd as __rcu in lec.h
- Use rcu_assign_pointer() in lec_atm_close() and lecd_attach()
  for safe pointer assignment
- Use rcu_access_pointer() for NULL checks that do not dereference
  the pointer in lec_start_xmit(), lec_push(), send_to_lecd() and
  lecd_attach()
- Use rcu_read_lock/rcu_dereference/rcu_read_unlock in send_to_lecd(),
  lec_handle_bridge() and lec_atm_send() to safely access lecd
- Use rcu_assign_pointer() followed by synchronize_rcu() in
  lec_atm_close() to ensure all readers have completed before
  proceeding. This is safe since lec_atm_close() is called from
  vcc_release() which holds lock_sock(), a sleeping lock.
- Remove the manual sk_receive_queue drain from lec_atm_close()
  since vcc_destroy_socket() already drains it after lec_atm_close()
  returns.&lt;/p&gt;
&lt;p&gt;v2:…&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;atm: lec: fix use-after-free in sock_def_readable()&lt;/p&gt;
&lt;p&gt;A race condition exists between lec_atm_close() setting priv-&amp;gt;lecd
to NULL and concurrent access to priv-&amp;gt;lecd in send_to_lecd(),
lec_handle_bridge(), and lec_atm_send(). When the socket is freed
via RCU while another thread is still using it, a use-after-free
occurs in sock_def_readable() when accessing the socket&amp;#39;s wait queue.&lt;/p&gt;
&lt;p&gt;The root cause is that lec_atm_close() clears priv-&amp;gt;lecd without
any synchronization, while callers dereference priv-&amp;gt;lecd without
any protection against concurrent teardown.&lt;/p&gt;
&lt;p&gt;Fix this by converting priv-&amp;gt;lecd to an RCU-protected pointer:
- Mark priv-&amp;gt;lecd as __rcu in lec.h
- Use rcu_assign_pointer() in lec_atm_close() and lecd_attach()
  for safe pointer assignment
- Use rcu_access_pointer() for NULL checks that do not dereference
  the pointer in lec_start_xmit(), lec_push(), send_to_lecd() and
  lecd_attach()
- Use rcu_read_lock/rcu_dereference/rcu_read_unlock in send_to_lecd(),
  lec_handle_bridge() and lec_atm_send() to safely access lecd
- Use rcu_assign_pointer() followed by synchronize_rcu() in
  lec_atm_close() to ensure all readers have completed before
  proceeding. This is safe since lec_atm_close() is called from
  vcc_release() which holds lock_sock(), a sleeping lock.
- Remove the manual sk_receive_queue drain from lec_atm_close()
  since vcc_destroy_socket() already drains it after lec_atm_close()
  returns.&lt;/p&gt;
&lt;p&gt;v2:…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-43050</guid>
    </item>
  </channel>
</rss>
