Home/ Blog/ Security news/ Article
Blog · Security news

A Linux kernel SCTP flaw (CVE-2026-64564) escalates to root and breaks out of default-seccomp containers

SCTPhantom (CVE-2026-64564) is a use-after-free in Linux SCTP that reaches host root and escaped default-seccomp containers in 6 of 8 tests.

Open glass container in dark space with a glowing thread rising to a metal slab above

Before you triage another kernel CVE by its severity score, look at what the researchers who found this one actually did with it. They sat inside an ordinary container, running under Docker's default seccomp profile with no added capabilities, and walked out to root on the host machine. Six times out of eight. That result, not the 8.5 severity number, is the reason to care about SCTPhantom.

Tracked as CVE-2026-64564, the flaw is a use-after-free in the Linux kernel's SCTP (Stream Control Transmission Protocol) code, the part that handles reconfiguring a connection's network paths on the fly. Tencent's Zhuque Lab disclosed it on August 6, and the fix reached the stable and long-term kernel branches on August 3 (exact versions below). The bug has been present since Linux 2.6.25 shipped in 2007, so it has ridden along in effectively every production kernel for 18 years. There is no public exploit at the time of writing, and it is not in CISA's Known Exploited Vulnerabilities catalog. The window to patch calmly is open. Use it.

SCTPhantom (CVE-2026-64564) by the numbers
8.5
CVSS v4.0 base score
High severity
18 yrs
Dormant in the SCTP code
present since Linux 2.6.25 (2007)
6 of 8
Container escapes to host root
default seccomp, minimal capabilities
Source: Tencent Zhuque Lab writeup, August 2026.

What actually breaks

SCTP lets a live connection add, remove, and reshuffle its network paths using a mechanism called ASCONF from RFC 5061. The bug is an identity mix-up in that logic. The kernel decides whether a path-removal request is allowed by checking one address, but the path it then operates on was selected from a second address buried elsewhere in the same message. An ordered reconfiguration sequence can delete a path and then reference it again through a wildcard, and the connection is left holding a pointer to memory that has already been freed. From that dangling reference the researchers built a controlled write and then root. This is the shape of the bug, not a recipe. The operational detail lives in the vendor writeup, and the part a defender needs is knowing which of your assumptions it quietly breaks.

"We don't use SCTP" is not the same as "we're not exposed"

This is the first place the wire coverage stops short. Almost nobody deliberately runs SCTP; it is a telecom and signaling protocol most server fleets never touch. That feels like safety. It is not. On most distributions SCTP ships as a loadable module, and the kernel pulls it in automatically the moment any local process opens an SCTP socket. An unprivileged user, or a process inside a container, can trigger that load without asking anyone. This is exactly why hardening benchmarks such as CIS have told operators for years to blacklist niche network modules they do not need, SCTP among them. Most teams skipped that step because those modules never seemed to matter. They matter now.

The sysctl you would reach for does not help

The instinct on reading "ASCONF" is to switch it off at the host level, set net.sctp.addip_enable and net.sctp.addip_noauth_enable to 0, and move on. The researchers left those sysctls at their defaults and the exploit still worked, because it turned the feature on through per-socket feature flags, namely SCTP_ASCONF_SUPPORTED together with SCTP_AUTH_SUPPORTED, rather than the system-wide switch. So the one-line mitigation that looks obvious buys you nothing here. That gap is the difference between a fleet that is patched and a fleet that only believes it is.

Your container is not the boundary you think it is

The 6-of-8 container escape is the finding that should move a threat model, not just a patch queue. It ran under the default seccomp profile that Docker and containerd apply out of the box, with only minimal capabilities. Default seccomp does not block creating an SCTP socket, so the profile most teams treat as the secure default did nothing to stop the path from container to host kernel. If you rely on unprivileged containers as an isolation boundary, the reminder here is blunt: the real boundary is the shared host kernel, and one reachable kernel bug collapses it. We made the same point when a rigged image could seize the host through Docker's MCP gateway, and when a kernel flaw let code climb out of a sandbox in GhostLock. Container escapes are kernel-surface problems, and you shrink them by shrinking the kernel surface a container can reach.

The bigger pattern: old code, new hunters

SCTPhantom was not found by a person reading source over a weekend. Tencent credits Corvus AI, a multi-agent pipeline that compiles kernels, reproduces crashes, reads sanitizer logs, and refines a proof of concept across stages on its own. That is the third strand of a story we keep returning to: dormant, rarely-audited kernel code from the 2000s, like the XFS local-root bug and the Open vSwitch flaw, is now being mined systematically by machines, the same way an AI system recently surfaced 14,090 bugs across open source. The takeaway is not that AI is scary. It is that the supply of ancient local-root and container-escape bugs sitting in code nobody has read in a decade is far larger than the patch cadence assumes, and it will keep arriving. Chasing each one on its own is a losing race. Reducing what a local process or a container can reach pays off across all of them at once.

The fix, and the two steps teams skip

  • Patch the kernel. Upstream shipped the fix as 6.6.148 and 6.12.101 on the long-term branches, plus 6.18.42 and the 7.1.6 release on newer ones; apply your distribution's backport. Trust the vendor security update rather than the raw version number, since fixes are backported without changing it, then reboot to load the new kernel.
  • Blacklist SCTP where you do not use it. If nothing on the host speaks SCTP, stop the module from loading at all with an install sctp /bin/true line in your modprobe config. That removes the attack surface instead of patching one instance of it, and it is worth doing for the other niche network modules too.
  • Fix the container profile, not only the host. Default seccomp did not stop this. Add SCTP socket creation to your seccomp denylist for workloads that never need it, and treat unprivileged containers as a layer over a patched kernel, never as the boundary itself.
  • Watch for the load, not just the exploit. An SCTP module load on a host with no reason to speak SCTP is a cheap, high-signal thing to alert on. Auditd rules on kernel-module loading and on unexpected privilege transitions catch the whole category, not only this CVE.

None of this is urgent in the drop-everything sense, because there is no exploit in the wild yet. It is urgent in the quieter sense: the fix is easy today, and the exposure stays silent right up until someone weaponizes it. Patch, blacklist what you do not run, and stop trusting the default container profile to hold a boundary the kernel does not.

Topics

Frequently asked questions

What is CVE-2026-64564 (SCTPhantom)?

CVE-2026-64564, named SCTPhantom, is a use-after-free vulnerability in the Linux kernel's SCTP address-reconfiguration (ASCONF) code. Disclosed by Tencent's Zhuque Lab in August 2026, it lets a local user escalate to root and, in tests, escape a container to the host. It carries a CVSS v4.0 score of 8.5.

Which Linux kernel versions are affected and fixed?

The flaw has been present since Linux 2.6.25 in 2007, so effectively all kernels before the fix are affected. Patched stable kernels 6.6.148, 6.12.101, 6.18.42, and 7.1.6 were released on August 3, 2026. Apply your distribution's backported update rather than checking the raw version number.

Is SCTPhantom being exploited in the wild?

No public exploit was available at the time of writing, and the vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog. That gives defenders time to patch on a normal change window. The proof of concept exists only within the researchers' own writeup, which does not publish working exploit code.

I don't run SCTP. Am I still exposed?

Possibly. On most distributions SCTP is a loadable module that the kernel auto-loads when any local process opens an SCTP socket, so an unprivileged user or a container can trigger it without configuration. If nothing on the host needs SCTP, blacklist the module with an install sctp /bin/true line to remove the attack surface.

Does disabling ASCONF via sysctl stop the attack?

No. Researchers left net.sctp.addip_enable and net.sctp.addip_noauth_enable at their defaults, and the exploit still worked because it enabled the feature through per-socket flags rather than the system-wide sysctls. Host-level sysctl hardening gives a false sense of safety here. Patch the kernel or blacklist the module instead.

How does this affect container security?

In testing, the exploit escaped a container running Docker's default seccomp profile with minimal capabilities to reach host root in 6 of 8 attempts. Default seccomp does not block SCTP socket creation. Treat unprivileged containers as defense in depth over a patched kernel, and add SCTP socket creation to your seccomp denylist.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.