{"id":"CVE-2026-74688","state":"PUBLISHED","title":"sctp: clear control chunk transport if it is being removed","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: clear control chunk transport if it is being removed\n\nsctp_make_heartbeat_ack() caches the destination transport in\nchunk->transport without taking a reference. When src_out_of_asoc_ok is\nenabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead\nof being transmitted immediately.\n\nIf the peer transport is removed while the chunk is still queued,\nsctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,\nbut only clears cached transport pointers in out_chunk_list.  The queued\ncontrol chunk therefore retains a dangling transport pointer.\n\nOnce an ASCONF_ACK clears the suppression and the queued control chunk is\ntransmitted, SCTP dereferences the stale transport pointer, leading to a\nuse-after-free.\n\nFix this by also clearing chunk->transport for queued control chunks in\ncontrol_chunk_list when removing the transport.","publishedAt":"2026-08-22T15:32:53.423Z","updatedAt":"2026-10-16T19:16:09.209Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"fad4766a74220fe579c6fcaa10ba01c23529814f","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"936658ec41c28c397ef390140e02d4c91ade92f0","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"8de65194a04d2552cd39b6c67d942d490f22d174","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"6160e756db81d6cb63e3e2952efcf6c5134be385","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"18d704bdd809377dfd81a3c2f42426763b5da227","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"c9158ceaf27780ef64534ad72f44ffde3f8ccc49","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.1","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]}],"references":["https://git.kernel.org/stable/c/dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886","https://git.kernel.org/stable/c/fad4766a74220fe579c6fcaa10ba01c23529814f","https://git.kernel.org/stable/c/936658ec41c28c397ef390140e02d4c91ade92f0","https://git.kernel.org/stable/c/8de65194a04d2552cd39b6c67d942d490f22d174","https://git.kernel.org/stable/c/6160e756db81d6cb63e3e2952efcf6c5134be385","https://git.kernel.org/stable/c/18d704bdd809377dfd81a3c2f42426763b5da227","https://git.kernel.org/stable/c/4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7","https://git.kernel.org/stable/c/c9158ceaf27780ef64534ad72f44ffde3f8ccc49"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74688.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74688","state":"PUBLISHED","datePublished":"2026-08-22T15:32:53.423Z","dateUpdated":"2026-10-16T19:16:09.209Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.926Z"},"containers":{"cna":{"title":"sctp: clear control chunk transport if it is being removed","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: clear control chunk transport if it is being removed\n\nsctp_make_heartbeat_ack() caches the destination transport in\nchunk->transport without taking a reference. When src_out_of_asoc_ok is\nenabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead\nof being transmitted immediately.\n\nIf the peer transport is removed while the chunk is still queued,\nsctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,\nbut only clears cached transport pointers in out_chunk_list.  The queued\ncontrol chunk therefore retains a dangling transport pointer.\n\nOnce an ASCONF_ACK clears the suppression and the queued control chunk is\ntransmitted, SCTP dereferences the stale transport pointer, leading to a\nuse-after-free.\n\nFix this by also clearing chunk->transport for queued control chunks in\ncontrol_chunk_list when removing the transport."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"fad4766a74220fe579c6fcaa10ba01c23529814f","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"936658ec41c28c397ef390140e02d4c91ade92f0","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"8de65194a04d2552cd39b6c67d942d490f22d174","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"6160e756db81d6cb63e3e2952efcf6c5134be385","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"18d704bdd809377dfd81a3c2f42426763b5da227","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7","versionType":"git"},{"version":"8a07eb0a50aebc8c95478d49c28c7f8419a26cef","status":"affected","lessThan":"c9158ceaf27780ef64534ad72f44ffde3f8ccc49","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.1","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sctp/associola.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886"},{"url":"https://git.kernel.org/stable/c/fad4766a74220fe579c6fcaa10ba01c23529814f"},{"url":"https://git.kernel.org/stable/c/936658ec41c28c397ef390140e02d4c91ade92f0"},{"url":"https://git.kernel.org/stable/c/8de65194a04d2552cd39b6c67d942d490f22d174"},{"url":"https://git.kernel.org/stable/c/6160e756db81d6cb63e3e2952efcf6c5134be385"},{"url":"https://git.kernel.org/stable/c/18d704bdd809377dfd81a3c2f42426763b5da227"},{"url":"https://git.kernel.org/stable/c/4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7"},{"url":"https://git.kernel.org/stable/c/c9158ceaf27780ef64534ad72f44ffde3f8ccc49"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The bug is reached from remotely received SCTP packets (HEARTBEAT, ASCONF, ASCONF_ACK) processed in sctp_rcv() and the association input state machine on internet-facing SCTP servers and telecom endpoints.\nAC:L - A remote SCTP peer controls packet sequencing and can send HEARTBEAT while src_out_of_asoc_ok blocks transmission, remove transports via ASCONF DEL_IP, then trigger flush when ASCONF_ACK clears suppression.\nPR:N - Exploitation requires only a network-reachable established SCTP association; the attacker needs no Linux credentials, capabilities, or namespaces—only the ability to send valid SCTP traffic to the target.\nUI:N - No victim user action is required; the use-after-free is triggered entirely by SCTP protocol messages sent by a remote peer during normal association operation or address migration.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the host kernel; it does not cross VM, container, or IOMMU security boundaries.\nC:H - Stale chunk->transport pointers dereference RCU-freed sctp_transport objects in sctp_outq_select_transport() and sctp_packet_transmit(), a use-after-free that enables arbitrary kernel memory disclosure via heap grooming.\nI:H - Use-after-free of sctp_transport allows controlled reuse of freed kmalloc objects, providing a standard path to arbitrary kernel writes and local privilege escalation or remote code execution in kernel context.\nA:H - Dereferencing the freed transport during control-chunk transmission can immediately kernel oops or panic the system; use-after-free bugs inherently threaten availability even when full exploitation is not attempted."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-25T05:41:32.712Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"6.6.152"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"6.12.104"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"6.18.45"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"7.1.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.1","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74688","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T19:14:32.502704Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:16:09.209Z"}}]}}}