<?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, 06 Oct 2026 00:14:49 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-36905 — tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-36905</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, linux_kernel, Siemens RUGGEDCOM RST2428P, Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family, Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 family, Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets&lt;/p&gt;
&lt;p&gt;TCP_SYN_RECV state is really special, it is only used by
cross-syn connections, mostly used by fuzzers.&lt;/p&gt;
&lt;p&gt;In the following crash [1], syzbot managed to trigger a divide
by zero in tcp_rcv_space_adjust()&lt;/p&gt;
&lt;p&gt;A socket makes the following state transitions,
without ever calling tcp_init_transfer(),
meaning tcp_init_buffer_space() is also not called.&lt;/p&gt;
&lt;p&gt;TCP_CLOSE
connect()
         TCP_SYN_SENT
         TCP_SYN_RECV
shutdown() -&amp;gt; tcp_shutdown(sk, SEND_SHUTDOWN)
         TCP_FIN_WAIT1&lt;/p&gt;
&lt;p&gt;To fix this issue, change tcp_shutdown() to not
perform a TCP_SYN_RECV -&amp;gt; TCP_FIN_WAIT1 transition,
which makes no sense anyway.&lt;/p&gt;
&lt;p&gt;When tcp_rcv_state_process() later changes socket state
from TCP_SYN_RECV to TCP_ESTABLISH, then look at
sk-&amp;gt;sk_shutdown to finally enter TCP_FIN_WAIT1 state,
and send a FIN packet from a sane socket state.&lt;/p&gt;
&lt;p&gt;This means tcp_send_fin() can now be called from BH
context, and must use GFP_ATOMIC allocations.&lt;/p&gt;
&lt;p&gt;[1]
divide error: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 1 PID: 5084 Comm: syz-executor358 Not tainted 6.9.0-rc6-syzkaller-00022-g98369dccd2f8 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
 RIP: 0010:tcp_rcv_space_adjust+0x2df/0x890 net/ipv4/tcp_input.c:767
Code: e3 04 4c 01 eb 48 8b 44 24 38 0f b6 04 10 84 c0 49 89 d5 0f 85 a5 03 00 00 41 8b 8e c8 09 00 00 89 e8 29 c8 48 0f af c3 31 d2 &amp;lt;48&amp;gt; f…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, linux_kernel, Siemens RUGGEDCOM RST2428P, Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family, Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 family, Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets&lt;/p&gt;
&lt;p&gt;TCP_SYN_RECV state is really special, it is only used by
cross-syn connections, mostly used by fuzzers.&lt;/p&gt;
&lt;p&gt;In the following crash [1], syzbot managed to trigger a divide
by zero in tcp_rcv_space_adjust()&lt;/p&gt;
&lt;p&gt;A socket makes the following state transitions,
without ever calling tcp_init_transfer(),
meaning tcp_init_buffer_space() is also not called.&lt;/p&gt;
&lt;p&gt;TCP_CLOSE
connect()
         TCP_SYN_SENT
         TCP_SYN_RECV
shutdown() -&amp;gt; tcp_shutdown(sk, SEND_SHUTDOWN)
         TCP_FIN_WAIT1&lt;/p&gt;
&lt;p&gt;To fix this issue, change tcp_shutdown() to not
perform a TCP_SYN_RECV -&amp;gt; TCP_FIN_WAIT1 transition,
which makes no sense anyway.&lt;/p&gt;
&lt;p&gt;When tcp_rcv_state_process() later changes socket state
from TCP_SYN_RECV to TCP_ESTABLISH, then look at
sk-&amp;gt;sk_shutdown to finally enter TCP_FIN_WAIT1 state,
and send a FIN packet from a sane socket state.&lt;/p&gt;
&lt;p&gt;This means tcp_send_fin() can now be called from BH
context, and must use GFP_ATOMIC allocations.&lt;/p&gt;
&lt;p&gt;[1]
divide error: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 1 PID: 5084 Comm: syz-executor358 Not tainted 6.9.0-rc6-syzkaller-00022-g98369dccd2f8 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
 RIP: 0010:tcp_rcv_space_adjust+0x2df/0x890 net/ipv4/tcp_input.c:767
Code: e3 04 4c 01 eb 48 8b 44 24 38 0f b6 04 10 84 c0 49 89 d5 0f 85 a5 03 00 00 41 8b 8e c8 09 00 00 89 e8 29 c8 48 0f af c3 31 d2 &amp;lt;48&amp;gt; f…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-36905</guid>
    </item>
  </channel>
</rss>
