<?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 16:31:23 +0000</lastBuildDate>
    <item>
      <title>CVE-2023-52523 — bpf, sockmap: Reject sk_msg egress redirects to non-TCP sockets</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2023-52523</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: Reject sk_msg egress redirects to non-TCP sockets&lt;/p&gt;
&lt;p&gt;With a SOCKMAP/SOCKHASH map and an sk_msg program user can steer messages
sent from one TCP socket (s1) to actually egress from another TCP
socket (s2):&lt;/p&gt;
&lt;p&gt;tcp_bpf_sendmsg(s1)		// = sk_prot-&amp;gt;sendmsg
  tcp_bpf_send_verdict(s1)	// __SK_REDIRECT case
    tcp_bpf_sendmsg_redir(s2)
      tcp_bpf_push_locked(s2)
	tcp_bpf_push(s2)
	  tcp_rate_check_app_limited(s2) // expects tcp_sock
	  tcp_sendmsg_locked(s2)	 // ditto&lt;/p&gt;
&lt;p&gt;There is a hard-coded assumption in the call-chain, that the egress
socket (s2) is a TCP socket.&lt;/p&gt;
&lt;p&gt;However in commit 122e6c79efe1 (&amp;#34;sock_map: Update sock type checks for
UDP&amp;#34;) we have enabled redirects to non-TCP sockets. This was done for the
sake of BPF sk_skb programs. There was no indention to support sk_msg
send-to-egress use case.&lt;/p&gt;
&lt;p&gt;As a result, attempts to send-to-egress through a non-TCP socket lead to a
crash due to invalid downcast from sock to tcp_sock:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 000000000000002f
 ...
 Call Trace:
  &amp;lt;TASK&amp;gt;
  ? show_regs+0x60/0x70
  ? __die+0x1f/0x70
  ? page_fault_oops+0x80/0x160
  ? do_user_addr_fault+0x2d7/0x800
  ? rcu_is_watching+0x11/0x50
  ? exc_page_fault+0x70/0x1c0
  ? asm_exc_page_fault+0x27/0x30
  ? tcp_tso_segs+0x14/0xa0
  tcp_write_xmit+0x67/0xce0
  __tcp_push_pending_frames+0x32/0xf0
  tcp_push+0x107/0x140
  tcp_sendmsg_locked+0x99f/0xbb0
  tcp_bpf_push+0x19d/0x3a0
  tcp_bpf_s…&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: Reject sk_msg egress redirects to non-TCP sockets&lt;/p&gt;
&lt;p&gt;With a SOCKMAP/SOCKHASH map and an sk_msg program user can steer messages
sent from one TCP socket (s1) to actually egress from another TCP
socket (s2):&lt;/p&gt;
&lt;p&gt;tcp_bpf_sendmsg(s1)		// = sk_prot-&amp;gt;sendmsg
  tcp_bpf_send_verdict(s1)	// __SK_REDIRECT case
    tcp_bpf_sendmsg_redir(s2)
      tcp_bpf_push_locked(s2)
	tcp_bpf_push(s2)
	  tcp_rate_check_app_limited(s2) // expects tcp_sock
	  tcp_sendmsg_locked(s2)	 // ditto&lt;/p&gt;
&lt;p&gt;There is a hard-coded assumption in the call-chain, that the egress
socket (s2) is a TCP socket.&lt;/p&gt;
&lt;p&gt;However in commit 122e6c79efe1 (&amp;#34;sock_map: Update sock type checks for
UDP&amp;#34;) we have enabled redirects to non-TCP sockets. This was done for the
sake of BPF sk_skb programs. There was no indention to support sk_msg
send-to-egress use case.&lt;/p&gt;
&lt;p&gt;As a result, attempts to send-to-egress through a non-TCP socket lead to a
crash due to invalid downcast from sock to tcp_sock:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 000000000000002f
 ...
 Call Trace:
  &amp;lt;TASK&amp;gt;
  ? show_regs+0x60/0x70
  ? __die+0x1f/0x70
  ? page_fault_oops+0x80/0x160
  ? do_user_addr_fault+0x2d7/0x800
  ? rcu_is_watching+0x11/0x50
  ? exc_page_fault+0x70/0x1c0
  ? asm_exc_page_fault+0x27/0x30
  ? tcp_tso_segs+0x14/0xa0
  tcp_write_xmit+0x67/0xce0
  __tcp_push_pending_frames+0x32/0xf0
  tcp_push+0x107/0x140
  tcp_sendmsg_locked+0x99f/0xbb0
  tcp_bpf_push+0x19d/0x3a0
  tcp_bpf_s…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2023-52523</guid>
    </item>
  </channel>
</rss>
