release v0.9.8: two new LPE modules (ptrace_pidfd, sudo_host)
release / build (arm64) (push) Waiting to run
release / build (x86_64) (push) Waiting to run
release / build (x86_64-static / musl) (push) Waiting to run
release / build (arm64-static / musl) (push) Waiting to run
release / release (push) Blocked by required conditions
release / build (arm64) (push) Waiting to run
release / build (x86_64) (push) Waiting to run
release / build (x86_64-static / musl) (push) Waiting to run
release / build (arm64-static / musl) (push) Waiting to run
release / release (push) Blocked by required conditions
Tags the two modules added this cycle (already on main): ptrace_pidfd (CVE-2026-46333, Qualys __ptrace_may_access/pidfd_getfd credential-fd theft,bd63aab) and sudo_host (CVE-2025-32462, Stratascale sudo -h/--host policy bypass,dd5f4fa). This commit bumps the version strings (skeletonkey.c, README, docs/index.html) and prepends the v0.9.8 RELEASE_NOTES entry. Corpus is now 41 modules / 36 CVEs / 28 verified. Tagging fires release.yml, which rebuilds + publishes the four prebuilt binaries via the Node-24 artifact actions bumped in v0.9.7.
This commit is contained in:
@@ -205,7 +205,7 @@ also compile (modules with Linux-only headers stub out gracefully).
|
||||
|
||||
## Status
|
||||
|
||||
**v0.9.7 cut 2026-06-01.** 41 modules across 36 CVEs — **every
|
||||
**v0.9.8 cut 2026-06-02.** 41 modules across 36 CVEs — **every
|
||||
year 2016 → 2026 now covered**. Newest: `ptrace_pidfd` (CVE-2026-46333,
|
||||
Qualys's `__ptrace_may_access` / `pidfd_getfd` credential-steal) and
|
||||
`sudo_host` (CVE-2025-32462, Stratascale's sudo `--host` policy bypass).
|
||||
|
||||
@@ -1,3 +1,36 @@
|
||||
## SKELETONKEY v0.9.8 — two new LPE modules (ptrace_pidfd, sudo_host)
|
||||
|
||||
Adds the two most compelling recent Linux LPEs not already in the corpus,
|
||||
taking it to **41 modules / 36 CVEs** (every year 2016 → 2026 still
|
||||
covered).
|
||||
|
||||
**`ptrace_pidfd` — CVE-2026-46333** (Qualys TRU, 2026-05-20). A logic
|
||||
flaw in the kernel's `__ptrace_may_access()` path leaves a process that
|
||||
is *dropping* its credentials briefly reachable past its `dumpable`
|
||||
boundary; `pidfd_getfd(2)` rides that window to steal a root-opened file
|
||||
descriptor or authenticated channel from a transiently-privileged setuid
|
||||
binary (chage / pkexec / ssh-keysign) or root daemon. Default-distro, no
|
||||
userns, architecture-agnostic (descriptor theft, no shellcode). detect()
|
||||
is version-pinned (predates-gate at pidfd_getfd's 5.6 introduction;
|
||||
Debian backports 5.10.251 / 6.1.172 / 6.12.88 / 7.0.7). `--mitigate`
|
||||
sets `kernel.yama.ptrace_scope=2`.
|
||||
|
||||
**`sudo_host` — CVE-2025-32462** (Rich Mirch / Stratascale, 2025-06-30;
|
||||
sibling of v0.8.0's `sudo_chwoot`). sudo's `-h`/`--host` option, meant
|
||||
only to pair with `-l`, was honored when running a command — so a
|
||||
sudoers rule scoped to a host other than the current machine (and not
|
||||
ALL) is usable via `sudo -h <host> <cmd>` for local root. Affects sudo
|
||||
1.8.8 → 1.9.17p0 (fixed 1.9.17p1); CWE-863, CVSS 8.8. Most relevant to
|
||||
fleet-wide / LDAP / SSSD sudoers.
|
||||
|
||||
Both are honest ports: detect() is version-pinned and unit-tested (10 new
|
||||
detect() rows, all green in CI), and exploit() fires the real primitive
|
||||
and returns `EXPLOIT_FAIL` unless it can witness euid 0 — never
|
||||
fabricating root. Neither is VM-verified yet (both flagged "sweep
|
||||
pending" in `tools/verify-vm/targets.yaml`), so the verified count stays
|
||||
28 of 36. Each ships auditd + sigma + falco rules, MITRE ATT&CK + CWE
|
||||
metadata, and credits the original researcher in its `NOTICE.md`.
|
||||
|
||||
## SKELETONKEY v0.9.7 — kernel_range drift fix + CI Node 24 readiness
|
||||
|
||||
Two maintenance fixes, no new modules.
|
||||
|
||||
+2
-2
@@ -56,7 +56,7 @@
|
||||
<div class="container hero-inner">
|
||||
<div class="hero-eyebrow">
|
||||
<span class="dot dot-pulse"></span>
|
||||
v0.9.7 — released 2026-06-01
|
||||
v0.9.8 — released 2026-06-02
|
||||
</div>
|
||||
<h1 class="hero-title">
|
||||
<span class="display-wordmark">SKELETONKEY</span>
|
||||
@@ -600,7 +600,7 @@ uid=0(root) gid=0(root)</pre>
|
||||
who found the bugs.
|
||||
</p>
|
||||
<p class="footer-meta">
|
||||
v0.9.7 · MIT · <a href="https://github.com/KaraZajac/SKELETONKEY">github.com/KaraZajac/SKELETONKEY</a>
|
||||
v0.9.8 · MIT · <a href="https://github.com/KaraZajac/SKELETONKEY">github.com/KaraZajac/SKELETONKEY</a>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define SKELETONKEY_VERSION "0.9.7"
|
||||
#define SKELETONKEY_VERSION "0.9.8"
|
||||
|
||||
static const char BANNER[] =
|
||||
"\n"
|
||||
|
||||
Reference in New Issue
Block a user