← All Advisories

Linux Kernel SCTP Heartbeat ACK Chunk Caches a Transport Without Taking a Reference, Enabling Use-After-Free When That Transport Is Concurrently Removed

Last refreshed2026-09-28

Status: NEW  |  Advisory ID: CVE-2026-74688

Key Details

CVECVE-2026-74688
CVSS Score / Version9.8 (Critical) / CVSS v3.1
Updated2026-08-25
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Proseattack vector is network; attack complexity is low; privileges required is none; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.

What to Know

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

sctp: clear control chunk transport if it is being removed

sctp_make_heartbeat_ack() caches the destination transport in

chunk->transport without taking a reference. When src_out_of_asoc_ok is

enabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead

of being transmitted immediately.

If the peer transport is removed while the chunk is still queued,

sctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,

but only clears cached transport pointers in out_chunk_list. The queued

control chunk therefore retains a dangling transport pointer.

Once an ASCONF_ACK clears the suppression and the queued control chunk is

transmitted, SCTP dereferences the stale transport pointer, leading to a

use-after-free.

Fix this by also clearing chunk->transport for queued control chunks in

control_chunk_list when removing the transport. (NVD)

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-74688
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-74688