CVE-2026-74287 PUBLISHED

sctp: validate embedded address parameter length

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 17.08.2026

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

sctp: validate embedded address parameter length

sctp_verify_asconf() and sctp_verify_param() only validate ADD_IP, DEL_IP, and SET_PRIMARY parameters against a fixed minimum size of sizeof(struct sctp_addip_param) + sizeof(struct sctp_paramhdr). This ensures the outer parameter is large enough to contain an embedded address parameter header, but does not verify that the embedded address parameter's declared length fits within the bounds of the outer parameter.

Later, sctp_process_param() and sctp_process_asconf_param() extract the embedded address parameter and pass it to af->from_addr_param(), which uses the address parameter length to parse the variable-length address payload. A malformed peer can therefore advertise an embedded address parameter length that exceeds the remaining bytes in the enclosing parameter.

Validate that addr_param->p.length does not exceed the space available after the sctp_addip_param header before processing the embedded address parameter. Reject malformed parameters when the embedded address length extends beyond the enclosing parameter bounds.

This prevents out-of-bounds reads when parsing malformed parameters carried in INIT or ASCONF processing paths.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
CVSS Score: 9.1

AV:N - The bug is reached when the kernel parses SCTP INIT/INIT-ACK or ASCONF chunks from a remote peer via sctp_rcv() -> sctp_do_sm() -> sctp_process_init()/sctp_process_asconf(), so any routable attacker can deliver the malformed ADD-IP/SET_PRIMARY TLVs over the network. AC:L - Exploitation is deterministic packet crafting (minimal outer TLV length with an oversized embedded address length); no race, memory-layout lottery, or victim-specific state is required beyond a target that has SCTP ADD-IP/asconf enabled, which is a normal configuration for SCTP HA/telecom servers. PR:N - No local privileges or pre-existing credentials are needed; an unauthenticated remote peer can send a crafted INIT to a listening SCTP endpoint or complete a handshake and send ASCONF/INIT-ACK traffic, and the vulnerable parsing runs before any application-level authentication. UI:N - Exploitation requires only sending SCTP packets to a reachable endpoint; no victim must open files, click links, or perform any interactive action beyond ordinary network exposure of an SCTP service. S:U - Impact is confined to the kernel SCTP stack on the receiving host (out-of-bounds kernel reads and possible crash); it does not cross a VM, container, or IOMMU security boundary. C:H - from_addr_param() performs out-of-bounds reads of up to 16 bytes (IPv6 address field) beyond the enclosing parameter boundary when the embedded length is inflated, exposing adjacent skb/kernel memory per kernel CVSS guidance that out-of-bounds reads warrant High confidentiality impact. I:N - The defect is an out-of-bounds read only; no kernel memory is written and the fix does not address any write primitive, so integrity impact is None. A:H - Reading beyond the validated parameter bounds can access unmapped memory past the skb chunk and trigger a kernel fault/oops on affected builds; even when bounded within the skb, this class of SCTP parser OOB reads is treated as High availability impact because it is remotely triggerable and may panic the host.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 06c8bf48505f2fef265931db82d5003d302a347b (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 28ba1d3c956604a89168adfb4c97cfc6c509bba5 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 3a44b2602d57e11e2eb85958d4cd500d14a27d9e (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 85f54cf589163a75fa06e37d8c2a4a72824c6dd1 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 92e4adfee56f32a963ebb105c6cd9a1ed707262a (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to ed8605c6f39b9b84f9a4631db6deb25e7f1e973c (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 0c674b20c9cdb54f8a46c88b4d00cadf82b8f0c0 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to e9361d0ca55c4af12aac09e2572852fa91046229 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.12 is affected
  • unaffected from 0 to 2.6.12 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References