Description
In the Linux kernel, the following vulnerability has been resolved:

sctp: keep chunk->transport in step with the list it is queued on

__sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport's
transmitted list without updating chunk->transport:

if (chunk->tsn_gap_acked) {
list_move_tail(&chunk->transmitted_list,
&transport->transmitted);
continue;
}

The chunk then sits on a live transport's list while chunk->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->transmitted and asoc->outqueue.out_chunk_list, but the chunk is on
neither.

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

tchunk->transport->flight_size -= sctp_data_size(tchunk);

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.

Set chunk->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.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Published: 2026-08-22
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to Privilege Escalation
Action: Patch Now
AI Analysis

Impact

The vulnerability arises from improper handling of SCTP transmission chunks in the Linux kernel. When a gap‑acked transmission is moved onto a different transport’s transmitted list, the chunk’s transport pointer is not updated. If that transport is later freed—such as during an ASCONF Delete‑IP—the chunk remains with a dangling pointer. Subsequent SACK handling clears the gap‑acked flag and dereferences the now‑invalid pointer, resulting in a slab‑use‑after‑free read. The flaw is a use‑after‑free of a kernel resource (CWE‑825) and, if exploited, could allow an attacker to execute arbitrary code with kernel privileges. Based on the description, it is inferred that an attacker must be able to initiate or influence an SCTP session to trigger the needed conditions, such as sending crafted SCTP packets containing a gap‑acked chunk.

Affected Systems

Linux kernel implementations that include the SCTP stack are affected. The vulnerability exists in any kernel configuration that builds the SCTP transport module; the advisory does not specify a kernel version, so all currently shipped kernels with active SCTP support are at risk unless updated. Systems running newer patched kernels after the fix are not vulnerable.

Risk and Exploitability

The CVSS score of 9.8 indicates high severity, but the EPSS score of < 1% suggests a low probability that this flaw will be actively exploited. The flaw is not listed in the CISA KEV catalog, further indicating that no zero‑day exploitation has been observed. Attackers would need to control an SCTP peer or otherwise inject specially crafted SCTP packets that trigger the gap‑acked and ASCONF Delete‑IP sequence. While this could be feasible in environments where untrusted SCTP traffic is accepted, the attack surface is limited by the requirement to manipulate SCTP associations. The likely attack vector is therefore inferred to be Remote SCTP traffic from an untrusted network, though local privilege escalation through an already authenticated user with SCTP capabilities is also possible.

Generated by OpenCVE AI on August 25, 2026 at 06:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest kernel patch that corrects the SCTP chunk transport pointer handling.
  • If SCTP is not required, compile the kernel without SCTP support or unload the SCTP module.
  • If disabling SCTP is not feasible, block or restrict SCTP traffic from untrusted networks using firewall rules or network segmentation.

Generated by OpenCVE AI on August 25, 2026 at 06:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4777-1 linux security update
Debian DSA Debian DSA DSA-6466-1 linux security update
History

Tue, 25 Aug 2026 05:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Mon, 24 Aug 2026 14:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 24 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Important


Sat, 22 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sctp: keep chunk->transport in step with the list it is queued on __sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport's transmitted list without updating chunk->transport: if (chunk->tsn_gap_acked) { list_move_tail(&chunk->transmitted_list, &transport->transmitted); continue; } The chunk then sits on a live transport's list while chunk->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->transmitted and asoc->outqueue.out_chunk_list, but the chunk is on neither. 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 tchunk->transport->flight_size -= sctp_data_size(tchunk); 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. Set chunk->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. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Title sctp: keep chunk->transport in step with the list it is queued on
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-25T05:40:15.097Z

Reserved: 2026-08-15T05:44:03.918Z

Link: CVE-2026-74588

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:30.960

Modified: 2026-08-25T06:18:33.410

Link: CVE-2026-74588

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-22T00:00:00Z

Links: CVE-2026-74588 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-25T06:30:04Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference