<?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>Tue, 29 Sep 2026 21:57:25 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-68284 — bpf, sockmap: Fix cork use-after-free in tcp_bpf_sendmsg()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-68284</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;bpf, sockmap: Fix cork use-after-free in tcp_bpf_sendmsg()&lt;/p&gt;
&lt;p&gt;tcp_bpf_sendmsg() keeps msg_tx across sk_stream_wait_memory(), which
drops and reacquires the socket lock.  Its error path tries to decide
whether msg_tx names the local temporary message by comparing it with
the current value of psock-&amp;gt;cork.&lt;/p&gt;
&lt;p&gt;This comparison is unsafe when two threads send on the same socket:&lt;/p&gt;
&lt;p&gt;Thread A                         Thread B
  msg_tx = psock-&amp;gt;cork
  sk_msg_alloc() fails
  sk_stream_wait_memory()
    releases the socket lock      acquires the socket lock
                                  completes the cork
                                  psock-&amp;gt;cork = NULL
                                  frees the cork
    reacquires the socket lock
  msg_tx != psock-&amp;gt;cork
  sk_msg_free(msg_tx)&lt;/p&gt;
&lt;p&gt;The stale cork is therefore mistaken for the local temporary message
and freed again.  KASAN reported:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in sk_msg_free+0x49/0x50
  Read of size 4 at addr ffff88810c908800 by task poc/90
  Call Trace:
   sk_msg_free+0x49/0x50
   tcp_bpf_sendmsg+0x14f5/0x1cc0
   __sys_sendto+0x32c/0x3a0
   __x64_sys_sendto+0xdb/0x1b0
  Allocated by task 89:
   __kasan_kmalloc+0x8f/0xa0
   tcp_bpf_sendmsg+0x16b3/0x1cc0
  Freed by task 91:
   __kasan_slab_free+0x43/0x70
   kfree+0x131/0x3c0
   tcp_bpf_sendmsg+0xec3/0x1cc0&lt;/p&gt;
&lt;p&gt;msg_tx can only name the stack-local tmp or the shared cork. Check for
tmp directly so a changed psock-&amp;gt;cor…&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;bpf, sockmap: Fix cork use-after-free in tcp_bpf_sendmsg()&lt;/p&gt;
&lt;p&gt;tcp_bpf_sendmsg() keeps msg_tx across sk_stream_wait_memory(), which
drops and reacquires the socket lock.  Its error path tries to decide
whether msg_tx names the local temporary message by comparing it with
the current value of psock-&amp;gt;cork.&lt;/p&gt;
&lt;p&gt;This comparison is unsafe when two threads send on the same socket:&lt;/p&gt;
&lt;p&gt;Thread A                         Thread B
  msg_tx = psock-&amp;gt;cork
  sk_msg_alloc() fails
  sk_stream_wait_memory()
    releases the socket lock      acquires the socket lock
                                  completes the cork
                                  psock-&amp;gt;cork = NULL
                                  frees the cork
    reacquires the socket lock
  msg_tx != psock-&amp;gt;cork
  sk_msg_free(msg_tx)&lt;/p&gt;
&lt;p&gt;The stale cork is therefore mistaken for the local temporary message
and freed again.  KASAN reported:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in sk_msg_free+0x49/0x50
  Read of size 4 at addr ffff88810c908800 by task poc/90
  Call Trace:
   sk_msg_free+0x49/0x50
   tcp_bpf_sendmsg+0x14f5/0x1cc0
   __sys_sendto+0x32c/0x3a0
   __x64_sys_sendto+0xdb/0x1b0
  Allocated by task 89:
   __kasan_kmalloc+0x8f/0xa0
   tcp_bpf_sendmsg+0x16b3/0x1cc0
  Freed by task 91:
   __kasan_slab_free+0x43/0x70
   kfree+0x131/0x3c0
   tcp_bpf_sendmsg+0xec3/0x1cc0&lt;/p&gt;
&lt;p&gt;msg_tx can only name the stack-local tmp or the shared cork. Check for
tmp directly so a changed psock-&amp;gt;cor…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-68284</guid>
    </item>
  </channel>
</rss>
