Exploit write-up

getroot — AF_ALG page-cache LPE and container escape

CVE-2026-31431 n-day CVSS 8.8 High

getroot is the escalation stage of the rootpacket toolkit, recovered from a Docker API intrusion. It exploits CVE-2026-31431, a use-after-free in the Linux kernel’s AF_ALG page-cache handling. A local, unprivileged process reaches the freed object through the crypto user-API socket family, reclaims it, and steers a controlled write into kernel memory to escalate to root.

Because the primitive operates on the host kernel rather than anything namespaced, the same run that lands root inside a container reaches the host: a privileged or loosely-confined container becomes a full host compromise. In the captured campaign that was the whole point. getroot handed off to an intel_uncore_freq_aux LKM rootkit that faked CPU and memory, rebuilt itself through DKMS across reboots, and hid a UPX-packed XMRig miner. The exploit is the interesting part; what it escalated into was ordinary cryptojacking.

Detection favours the escalation, not the trigger. Watch for AF_ALG socket use from workloads that have no reason to touch the kernel crypto API, unexpected DKMS builds, and out-of-tree modules with vendor-adjacent names such as intel_uncore_freq_aux. The fix is the upstream kernel patch; where you cannot patch promptly, disabling AF_ALG or restricting it removes the vector. The working PoC is public in the linked repo, mirrored from the rootpacket sample; run it only in a disposable VM.

Target
Linux kernel (Linux)
Class
AF_ALG page-cache use-after-free
Impact
Local privilege escalation to root, with escape from a container to the host
CVE
CVE-2026-31431
CWE
CWE-416
CVSS
8.8 (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
Affected
Linux kernel with the AF_ALG (crypto user-API) socket family enabled
Status
Fixed upstream; patch your kernel
Maturity
weaponized
Disclosed
June 15, 2026
Tags
lpe · container-escape · linux-kernel · af_alg · use-after-free
Report
A Linux cryptojacking toolkit that hides in the kernel
References
NVD — CVE-2026-31431
Public PoC (kinryulabs/rootpacket-cve-2026-31431)
Proof of concept
Public PoC

SHA-256

  • dda96d8a4bcc39dc7679347a4386bf1024152d2ccc46d333725ad0cda855d952 getroot PoC binary

The linked repo carries getroot, a working local-root exploit. Detonate only in an isolated, disposable VM with no network path to anything you value.

← All exploits