Linux Kernel — SCTPhantom: SCTP ASCONF DEL-IP Use-After-Free Local Privilege Escalation (CVE-2026-64564)
Published: 2026-08-15 • Researcher: HackSpeak
- Severity
- High
- CVE
- CVE-2026-64564
- Category
- binary
- Affected product
- Linux kernel, SCTP (Stream Control Transmission Protocol) ASCONF subsystem
- Affected versions
- Debian 13 with kernel 6.12.95 (hardcoded offsets); other kernels with SCTP ASCONF DEL-IP vulnerability may be affected with adjusted offsets
- Disclosed
- 2026-08-15
- Patch status
- Unverified
Tags
References
Archive entry
intelseclab/poc-archiveOn this page
Metadata
| Field | Value |
|---|---|
| Date Added | 2026-08-15 |
| Last Updated | 2026-08-15 |
| Author / Researcher | HackSpeak |
| CVE / Advisory | CVE-2026-64564 |
| Category | binary |
| Severity | High |
| CVSS Score | 7.8 (estimated, local LPE) |
| Status | Patched |
| Tags | linux, kernel, lpe, sctp, use-after-free, asconf, del-ip, heap-spray, packet-tx-ring, kaslr-bypass, credential-overwrite, debian, CWE-416, CVE-2026-64564 |
| Related | pocs/binary/2026-08-15_cve-2026-64531-ovswrap-linux-ovs-lpe/ (same author) |
Affected Target
| Field | Value |
|---|---|
| Software / System | Linux kernel, SCTP (Stream Control Transmission Protocol) ASCONF subsystem |
| Versions Affected | Debian 13 with kernel 6.12.95 (hardcoded offsets); other kernels with SCTP ASCONF DEL-IP vulnerability may be affected with adjusted offsets |
| Language / Platform | C (single-file exploit), targets x86-64 Linux with SCTP and unprivileged user namespaces |
| Authentication Required | Local unprivileged user |
| Network Access Required | None – local privilege escalation |
Summary
CVE-2026-64564 is a use-after-free vulnerability in the Linux kernel SCTP ASCONF DEL-IP processing. When a multihomed SCTP association processes an ASCONF chunk that deletes an IP address, the associated transport structure is freed but a dangling pointer remains accessible through the association. The exploit reclaims the freed transport with controlled data via PACKET_TX_RING pages and SCTP auth key sprays, builds a fake credential/transport/association object graph in controlled pages, and triggers commit_creds() with a forged init_cred to escalate to global root.
The exploit implements a two-stage UAF approach: UAF #1 leaks a controlled direct-map page address through the freed transport’s status fields, and UAF #2 reclaims the active_path transport pointer with a self-consistent fake object graph that redirects SCTP’s routing path to call commit_creds(init_cred).
Vulnerability Details
Root Cause
The SCTP ASCONF (Address Configuration Change) extension allows dynamic addition and removal of IP addresses from associations. When processing an ASCONF DEL-IP chunk, the kernel frees the sctp_transport structure for the deleted address. However, the association’s active_path or primary_path pointer may still reference the freed transport. Subsequent operations on the association (status queries, send, close) dereference the dangling pointer.
Exploitation Process
- Namespace setup: Creates user/network namespaces with SCTP ASCONF enabled.
- Multihomed association: Establishes a multihomed SCTP association with multiple bound addresses.
- UAF #1 – Page leak: Sends a crafted ASCONF DEL-IP chunk via raw socket to free a transport, then reclaims it with PACKET_TX_RING pages. Reads the leaked page address via
getsockopt(SCTP_STATUS)which returns the reclaimed transport’sspinfo_srttandspinfo_cwndfields (overlapping the controlled page data). - Fake object graph: Populates the leaked controlled page with a complete fake transport/association/credential graph, including forged function pointers to
commit_credsand the init credential addresses. - KASLR bypass: Reads the fixed IDT mapping at
0xfffffe0000000000via a 32-bit arbitrary read primitive (redirecting association ID reads through reclaimed transports) to recover the kernel ASLR slide. - UAF #2 – Credential overwrite: Frees another transport, reclaims it with the fake object graph via SCTP auth key spray, and triggers
commit_creds(init_cred)through the forged function pointer chain when the association is closed. - Verification: Reads
/etc/shadowto confirm global root credentials.
Impact
Local privilege escalation from unprivileged user to global root. Verified on Debian 13 with kernel 6.12.95. The exploit reads /etc/shadow as proof and writes a marker file to /root/.
Environment / Lab Setup
| |
Proof of Concept
See
lpe_debian.6.12.95.c(842 lines, C) in this folder – mirrored byte-for-byte from HackSpeak/CVE-2026-64564. The upstream README is preserved asupstream-README.md.
Step-by-Step Reproduction
- Build:
gcc -O2 -static -o lpe lpe_debian.6.12.95.c - Run as unprivileged user:
./lpe - Observe: The exploit creates namespaces, establishes SCTP associations, triggers the UAF, leaks KASLR slide, builds fake objects, and escalates to root.
- Verify:
/etc/shadowcontents printed,/root/SCTP_LPE_SUCCESSmarker created.
Exploit Code
ASCONF DEL-IP chunk construction:
| |
Root verification:
| |
Expected Output
[+] UAF1 page: 0xffff888012345000 (3 attempts)
[*] victims ready: 48/48
[+] KASLR slide: 0x1a200000 (IDT 0x1234)
[+] credential security: 0xffffffff82c53940
[+] association: 0xffff888023456000 (1 attempts)
[+] double reclaim transport: 0xffff888034567000
[+] double reclaim: landed=1 attempts=2 status=0x1337beef state=3
[*] trigger: sprayed=6000 uid=1000 before=0
[+] global root confirmed
[+] shadow: root:!:19000::::::
[+] marker written: /root/SCTP_LPE_SUCCESSDetection and Indicators of Compromise
Remediation
| Action | Detail |
|---|---|
| Patch | Apply the kernel fix for CVE-2026-64564. Check Debian and distribution security advisories for the specific patched kernel version. |
| Workaround | Disable SCTP ASCONF: sysctl net.sctp.addip_enable=0. Disable unprivileged user namespaces. Blacklist the SCTP kernel module if not needed. |
| Verification | Check that net.sctp.addip_enable=0 on production systems. Audit for unexpected /root/ marker files. |
References
Notes
Verified this session by reading the full exploit source (lpe_debian.6.12.95.c, 842 lines). The exploit is a single C file using standard Linux syscalls: socket/setsockopt for SCTP operations, AF_PACKET/PACKET_TX_RING for heap spray, raw sockets for crafted ASCONF chunks, and mmap for controlled page access. All kernel symbol addresses are hardcoded for Debian 13 kernel 6.12.95.
Malware screen – clean. No obfuscation, no remote downloaders, no credential exfiltration beyond the local /etc/shadow read (which is the proof-of-concept verification), no miners, no C2 callbacks. The only persistent artifact is a marker file at /root/SCTP_LPE_SUCCESS. The process remains alive (via execv("/bin/sleep")) after exploitation to avoid unsafe teardown of dangling victim associations.
Author: HackSpeak, same account as CVE-2026-64531 (OVSwrap). Described as a “community PoC mirror” with 6 stars. The code is well-structured exploit research with detailed inline comments explaining each stage. Lower author confidence but code verified clean.