Skip to main content
← All vulnerabilities
CVE-2026-72447

sctp: hold socket lock when dumping endpoints in sctp_diag

Published
Last modified
published
Not listed in CISA KEV
None on Exploit-DB, Metasploit or GitHub

Summary

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    Version range not reported

  • Linux Linux

    4.7

References 8

git.kernel.org