CVE-2026-53224

sctp: validate embedded INIT chunk and address list lengths in cookie

State
Published
Severity
9.1 Critical
Published
Jun 25, 2026
Updated
Oct 30, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

sctp: validate embedded INIT chunk and address list lengths in cookie

sctp_unpack_cookie() only checked that the embedded INIT chunk length did not exceed the remaining cookie payload, but did not ensure that the INIT chunk is large enough to contain a complete INIT header.

A malformed COOKIE_ECHO can therefore carry a truncated INIT chunk whose length field is smaller than sizeof(struct sctp_init_chunk). Later, sctp_process_init() accesses INIT parameters unconditionally, which may lead to out-of-bounds reads.

In addition, raw_addr_list_len is not fully validated against the remaining cookie payload. When cookie authentication is disabled, an attacker can supply an oversized raw_addr_list_len and cause sctp_raw_to_bind_addrs() to read beyond the end of the cookie. The address parser also lacks sufficient bounds checks for parameter headers and lengths, allowing malformed address parameters to trigger out-of-bounds reads.

Fix this by:

- requiring the embedded INIT chunk length to be at least sizeof(struct sctp_init_chunk); - validating that the INIT chunk and raw address list together fit within the cookie payload; - verifying sufficient data exists for each address parameter header and payload before parsing it.

Note that sctp_verify_init() must be called after sctp_unpack_cookie() and before sctp_process_init() when cookie authentication is disabled. This will be addressed in a separate patch.

Scores

CVSSScoreVectorSource
3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before b1ca7dcfb335caa2c73d2d1bb5710e6dea2c11e0Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before dd75066882ecc4ec8df3f5384b4b9fa9579be8f0Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 29ab56e7660b6f849c10c46e87e085649df751ebAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 7560afb8cddafd829e709d7ea09230e45a825557Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 512a9bb77c04ac9927648ea58af617e472be96e6Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 6f4c80a2a7e6d06753b89a578b710a2499a5e62bAffected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.36 through 6.18.*Not affected
  • 7.0.13 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.