<?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:32:02 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-74588 — sctp: keep chunk-&gt;transport in step with the list it is queued on</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-74588</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;sctp: keep chunk-&amp;gt;transport in step with the list it is queued on&lt;/p&gt;
&lt;p&gt;__sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport&amp;#39;s
transmitted list without updating chunk-&amp;gt;transport:&lt;/p&gt;
&lt;p&gt;if (chunk-&amp;gt;tsn_gap_acked) {
		list_move_tail(&amp;amp;chunk-&amp;gt;transmitted_list,
			       &amp;amp;transport-&amp;gt;transmitted);
		continue;
	}&lt;/p&gt;
&lt;p&gt;The chunk then sits on a live transport&amp;#39;s list while chunk-&amp;gt;transport still
names a different one.  If that transport is removed - sctp_assoc_rm_peer()
from an ASCONF Delete-IP - sctp_transport_free() RCU-frees it and the chunk
is left with a dangling pointer.  sctp_assoc_rm_peer() scrubs
peer-&amp;gt;transmitted and asoc-&amp;gt;outqueue.out_chunk_list, but the chunk is on
neither.&lt;/p&gt;
&lt;p&gt;The pointer is not followed while tsn_gap_acked is set.  A SACK that
reneges on the TSN clears the flag, and the next SACK reaches&lt;/p&gt;
&lt;p&gt;tchunk-&amp;gt;transport-&amp;gt;flight_size -= sctp_data_size(tchunk);&lt;/p&gt;
&lt;p&gt;inside the freed transport.  KASAN reports a slab-use-after-free read in
sctp_check_transmitted(), freed from sctp_assoc_rm_peer().  Both the
removal and the SACKs come from the association peer.&lt;/p&gt;
&lt;p&gt;Set chunk-&amp;gt;transport at the move.  The ordinary resend path needs nothing:
it reaches its list_move_tail() only after sctp_packet_append_chunk()
returned SCTP_XMIT_OK, and __sctp_packet_append_chunk() has rebound the
chunk by then.&lt;/p&gt;
&lt;p&gt;Discovered by XBOW, triaged by Baul Lee &amp;lt;baul.lee@xbow.com&amp;gt;&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;sctp: keep chunk-&amp;gt;transport in step with the list it is queued on&lt;/p&gt;
&lt;p&gt;__sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport&amp;#39;s
transmitted list without updating chunk-&amp;gt;transport:&lt;/p&gt;
&lt;p&gt;if (chunk-&amp;gt;tsn_gap_acked) {
		list_move_tail(&amp;amp;chunk-&amp;gt;transmitted_list,
			       &amp;amp;transport-&amp;gt;transmitted);
		continue;
	}&lt;/p&gt;
&lt;p&gt;The chunk then sits on a live transport&amp;#39;s list while chunk-&amp;gt;transport still
names a different one.  If that transport is removed - sctp_assoc_rm_peer()
from an ASCONF Delete-IP - sctp_transport_free() RCU-frees it and the chunk
is left with a dangling pointer.  sctp_assoc_rm_peer() scrubs
peer-&amp;gt;transmitted and asoc-&amp;gt;outqueue.out_chunk_list, but the chunk is on
neither.&lt;/p&gt;
&lt;p&gt;The pointer is not followed while tsn_gap_acked is set.  A SACK that
reneges on the TSN clears the flag, and the next SACK reaches&lt;/p&gt;
&lt;p&gt;tchunk-&amp;gt;transport-&amp;gt;flight_size -= sctp_data_size(tchunk);&lt;/p&gt;
&lt;p&gt;inside the freed transport.  KASAN reports a slab-use-after-free read in
sctp_check_transmitted(), freed from sctp_assoc_rm_peer().  Both the
removal and the SACKs come from the association peer.&lt;/p&gt;
&lt;p&gt;Set chunk-&amp;gt;transport at the move.  The ordinary resend path needs nothing:
it reaches its list_move_tail() only after sctp_packet_append_chunk()
returned SCTP_XMIT_OK, and __sctp_packet_append_chunk() has rebound the
chunk by then.&lt;/p&gt;
&lt;p&gt;Discovered by XBOW, triaged by Baul Lee &amp;lt;baul.lee@xbow.com&amp;gt;&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-74588</guid>
    </item>
  </channel>
</rss>
