rootback.dev · authorized machines only

ROOTBACK

A local-only instrument for the post-AI era: find a public kernel path back to root on the machine you already own, then reset your password.

Why this exists

In the post-AI era, exploit research is abundant and cheap. Proof of ownership is not.

A model can summarize a CVE. It cannot prove that the computer in front of you is yours, that its kernel is the one you think it is, or that you can still recover it without a vendor account, a cloud console, or a rescue USB.

ROOTBACK reads the kernel actually running, matches it against a curated snapshot of public root-escalation and KVM/container-escape research, and — only after explicit consent — runs a narrow set of public PoCs. When one succeeds, it uses the root context to reset a local password and verifies the reset with a root-owned marker.

Kernel exploits can crash or corrupt the machine. Use this only on hardware you own or are written-authorized to test. Keep a console or rescue path before changing a password.

What it is not

Catalog — snapshot 2026-11-11

39 entries. auto means a public recipe exists and the tool can run it after consent. manual means detection plus a research link: these need host-side control of a VM/container, kernel-specific offsets, a second terminal, or the public PoC is a panic/DoS rather than a recovery path. Android entries are decided by ro.build.version.security_patch.

Kernel local privilege escalation

CVENameClassAffected (upstream)Fixed (upstream)ModeResearch
CVE-2026-31431Copy FailkernelLinux 4.14 - 6.18.21, 6.19.0 - 6.19.116.18.22, 6.19.12, 7.0+autoresearch
CVE-2026-43284Dirty Frag (ESP)kernelLinux 4.11 - 6.18.27, 7.0.0 - 7.0.46.18.28, 7.0.5, 7.1+autoresearch
CVE-2026-43500Dirty Frag (RxRPC)kernelLinux 5.3 - 6.18.28, 7.0.0 - 7.0.56.18.29, 7.0.6, 7.1+manualresearch
CVE-2026-46300FragnesiakernelLinux 3.9 - 6.18.32, 7.0.0 - 7.0.96.18.33, 7.0.10, 7.1+autoresearch
CVE-2026-46331pedit COWkernelLinux 5.18 - 7.1-rc6 (vendor backports vary)5.10.260, 5.15.211, 6.1.177, 6.6.144, 6.12.94, 6.18.36, 7.0.13, 7.1-rc7autoresearch
CVE-2026-43494PinTheftkernelLinux 4.17 - 6.18.32, 7.0.0 - 7.0.9 (CONFIG_RDS)6.18.33, 7.0.10, 6.12.91, 6.6.141autoresearch
CVE-2026-46333ptrace fd theftkernelLinux 4.10 - 6.18.30, 7.0.0 - 7.0.76.18.31, 7.0.8, 7.1+manualresearch
CVE-2026-46243CIFSwitchkernelLinux 2.6.24 - 6.18.33, 7.0.0 - 7.0.106.18.34, 7.0.11, 7.1+manualresearch

KVM guest-to-host

CVENameClassAffected (upstream)Fixed (upstream)ModeResearch
CVE-2026-53359JanuscapekvmLinux 2.6.36 - 7.1.2 (KVM/x86)7.1.3+manualresearch
CVE-2026-64561ZapscapekvmLinux 5.9 - 7.1.5 (KVM/x86)7.1.6+manualresearch
CVE-2026-89775KVM arm64 VNCRkvmLinux 6.16 - 6.18.50, 7.2.0 - 7.2.4 (KVM/arm64)6.18.51, 7.2.5, 7.3+manualresearch
CVE-2025-40026KVM x86 I/O interceptkvmLinux 3.0 - 6.17.1 (KVM/x86)6.17.2, 6.18+manualresearch
CVE-2026-46316ITScapekvmLinux 6.10 - 6.12.92, 6.18.0 - 6.18.34, 7.0.0 - 7.0.11 (KVM/arm64)6.12.93, 6.18.35, 7.0.12, 7.1+manualresearch
CVE-2026-99999IPv4 checksum_startkvmLinux 2.6.27 - 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.56, 7.2.105.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.57, 7.2.11, 7.3+manualresearch

Android kernel

Matched against the device security patch level, not the GKI base version. Detection-only: no Android recipe, and no password reset.

CVENameClassAffectedFixedModeResearch
CVE-2026-53256Android Bluetooth EoPandroidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-59044pKVM host EoPandroidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-59045pKVM host EoP (2)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-80604Android HID EoPandroidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-89774Android Bluetooth EoP (2)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2025-38627F2FS EoPandroidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-58825DMA-BUF EoPandroidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-58826DMA-BUF EoP (2)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-58827DMA-BUF EoP (3)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-58828DMA-BUF EoP (4)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch
CVE-2026-59043pKVM host EoP (3)androidAndroid devices, SPL < 2026-11-052026-11-05 SPLmanualresearch

Container runtime

These require control over container creation, a malicious image, or shared mounts. A version match alone is not an escape.

CVENameClassAffected (upstream)Fixed (upstream)ModeResearch
CVE-2025-31133runc masked /dev/nullcontainerrunc <= 1.2.7; 1.3.0-rc.1 - 1.3.1; 1.4.0-rc.1 - rc.21.2.8, 1.3.2, 1.4.0-rc.3manualresearch
CVE-2025-52565runc /dev/consolecontainerrunc 1.0.0-rc3 - 1.2.7; 1.3.0-rc.1 - 1.3.2; 1.4.0-rc.1 - rc.21.2.8, 1.3.3, 1.4.0-rc.3manualresearch
CVE-2025-52881runc procfs writecontainerrunc <= 1.2.7; 1.3.0 - 1.3.2; 1.4.0-rc.1 - rc.21.2.8, 1.3.3, 1.4.0-rc.3manualresearch
CVE-2026-41579runc /dev symlinkcontainerrunc < 1.3.6; 1.4.0-rc.1 - < 1.4.3; 1.5.0-rc.1 - < 1.5.0-rc.31.3.6, 1.4.3, 1.5.0-rc.3manualresearch
CVE-2026-57231Podman image escapecontainerPodman 1.8.1 - 5.8.35.8.4manualresearch
CVE-2024-21626Leaky Vesselscontainerrunc <= 1.1.111.1.12+manualresearch
CVE-2026-17106CopyEscapecontainerDocker Engine/CLI < 29.7.0; Docker Desktop < 4.86.0; Compose < 5.4.0; go-archive < 0.3.029.7.0, 4.86.0, 5.4.0, 0.3.0manualresearch

Userspace

CVENameClassAffected (upstream)Fixed (upstream)ModeResearch
CVE-2025-32463sudo chrootuserspacesudo 1.9.14 - 1.9.171.9.17p1+autoresearch

Legacy kernel LPEs

Kept for long-lived LTS and embedded machines. Most are detection-only here because their public PoCs need kernel-specific offsets, a second terminal, or deliberately panic the host.

CVENameClassAffected (upstream)Fixed (upstream)ModeResearch
CVE-2021-4034PwnKitlegacypkexec <= 0.1200.121+ / vendor backportautoresearch
CVE-2024-1086nf_tables UAFlegacyLinux 5.14 - 6.6 (unpatched branches)5.15.149, 6.1.76, 6.6.15, 6.7.3, 6.8+manualresearch
CVE-2022-0847Dirty PipelegacyLinux 5.8 - 5.16.10, 5.15.24, 5.10.1015.16.11, 5.15.25, 5.10.102manualresearch
CVE-2023-4911Looney Tunableslegacyglibc 2.34 - 2.382.38-4+ / vendor backportmanualresearch
CVE-2023-0386OverlayFSlegacyLinux 5.11 - 6.2.16.2.2, 6.3+manualresearch
CVE-2023-32233nf_tables UAFlegacyLinux 5.0 - 6.3.16.3.2, 6.4+manualresearch

How it works

uname / config / modules / sysctls / ro.build.version.security_patch
              |
              v
   catalog match (stable fix matrix or Android SPL + feature gates)
              |
              v
   authorization gate (--authorized + typed phrase)
              |
              v
   fetch public PoC -> build -> feed reset payload
              |
              v
   root-owned marker (uid 0, nonce) -> reset verified

Detection checks the upstream stable fix matrix and then the feature gates that make the path reachable: algif_aead, esp4/esp6, act_pedit, rds, cifs.upcall, unprivileged user namespaces, ptrace_scope, /dev/kvm, and nested virtualization. A distribution kernel can backport a fix without changing its base version, so a VULNERABLE result on a vendor kernel is a hypothesis; non-interactive auto-runs of medium-confidence candidates require --include-medium. On Android, entries with a fixed patch level are decided by ro.build.version.security_patch; entries that only have an upstream matrix are capped at medium and annotated with the GKI caveat.

Use

git clone https://github.com/pysio2007/rootback
cd rootback
./rootback.sh deps
./rootback.sh scan
./rootback.sh exploit auto --authorized --dry-run
./rootback.sh exploit auto --authorized

Then type I OWN THIS MACHINE when prompted. SSH additionally requires --allow-ssh. A generated password is printed once and never written to the audit log; use --password-file instead of --password.

The gift

The post-AI era will produce more exploits than any one person can read. The scarce thing will be the ability to prove that a machine is yours, that you understand what it runs, and that you can still get back in.

This is a small attempt at that. It is text, shell, and public research — no account, no cloud, no permission from a vendor.