CVE-2026-72447

sctp: hold socket lock when dumping endpoints in sctp_diag

State
Published
Severity
Not scored
Published
Aug 15, 2026
Updated
Aug 17, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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

sctp: hold socket lock when dumping endpoints in sctp_diag

SCTP_DIAG endpoint dumping was traversing endpoint address lists without holding lock_sock(), while those lists could change concurrently via socket operations (e.g., bindx changes). This creates a race where nla_reserve() counts addresses under RCU protection, but the subsequent copy may see fewer entries, potentially leaking uninitialized memory to userspace.

Fix this by:

- Taking a reference on each endpoint during hash traversal - Moving socket operations (lock_sock()) outside read_lock_bh() - Serializing address list access during dump - Reworking sctp_for_each_endpoint() to support restart-based traversal with (net, pos) tracking

Also:

- Add WARN_ON_ONCE() for inconsistent address counts - Fix idiag_states filtering for LISTEN vs association cases - Skip dumping endpoints being freed (ep->base.dead) - Move dump position tracking into iterator, removing cb->args[4] and its comment for sctp_ep_dump()., - Update the comment for cb->args[4] and remove the comment for unused cb->args[5] for sctp_sock_dump().

Note: traversal is restart-based and may re-scan buckets multiple times, but this is acceptable due to small bucket sizes and required to support sleeping-safe callbacks.

This issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero Day Initiative.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before f98c294a9369b6fe89e652c06357ee594be4dfa2Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before 8b38e3dcfde3077dbc03eb8ef88e03cc19f70b8aAffected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before ec3c2d59a192e17e1014ba71afc368ba162ecac3Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before 722576aba0a6d9423714550b1c03239b0f0def77Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before abe7f8828e6ac8be858870c2bf836258844f97d5Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before 207bb4ce8fe7de961ae7bb33569ad2cd61f44954Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before f09a245f33e567b604efa1960b7a2d25dd9c8713Affected
  • 8f840e47f190cbe61a96945c13e9551048d42cef to before 7d8297e26b4e20b5d1c3c3fe51fe81a1c7fbc823Affected
LinuxLinux
  • 4.7Affected
  • before 4.7Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.