release: bump version to v0.6.0
release / build (arm64) (push) Waiting to run
release / build (x86_64) (push) Waiting to run
release / release (push) Blocked by required conditions

This release captures the session's reliability + accuracy work
on top of v0.5.0:

- Shared host fingerprint (core/host.{h,c}): kernel/distro/userns
  gates / sudo + polkit versions, populated once at startup; every
  module consults ctx->host instead of doing its own probes.
- Test harness (tests/test_detect.c, make test): 44 unit tests over
  mocked host fingerprints, wired into CI as a non-root step.
- --auto upgrades: auto-enables --active, per-detect 15s timeout,
  fork-isolated detect + exploit so a crashing module can't tear
  down the dispatcher, per-module verdict table + scan summary.
- --dry-run flag (preview without firing; --i-know not required).
- Pinned mainline fix commits for the 3 ported modules
  (dirtydecrypt / fragnesia / pack2theroot) — detect() is now
  version-pinned with kernel_range tables, not precondition-only.
- New modules: dirtydecrypt (CVE-2026-31635), fragnesia
  (CVE-2026-46300), pack2theroot (CVE-2026-41651).
- macOS dev build works for the first time (all Linux-only code
  wrapped in #ifdef __linux__).
- docs/JSON_SCHEMA.md: stable consumer contract for --scan --json.

Version bump:
- SKELETONKEY_VERSION = '0.6.0' in skeletonkey.c
- README status line updated with the v0.6.0 changelog
- docs/JSON_SCHEMA.md example refreshed
This commit is contained in:
2026-05-23 00:22:18 -04:00
parent a9c8f7d8c6
commit 97be306fd2
3 changed files with 25 additions and 12 deletions
+23 -10
View File
@@ -181,16 +181,29 @@ also compile (modules with Linux-only headers stub out gracefully).
## Status ## Status
**v0.5.0 cut 2026-05-17.** 28 verified modules, plus 3 **v0.6.0 cut 2026-05-23.** 28 verified modules, plus 3
ported-but-unverified (`dirtydecrypt`, `fragnesia`, `pack2theroot`) ported-but-unverified (`dirtydecrypt`, `fragnesia`, `pack2theroot`).
added since the cut. All 31 build clean on Debian 13 (kernel 6.12) All 31 build clean on Debian 13 (kernel 6.12) and refuse cleanly on
and refuse cleanly on patched hosts. `--auto` now auto-enables patched hosts.
`--active` and runs each `detect()` in a fork-isolated child so one
crashing probe cannot tear down the scan. Empirical end-to-end Reliability + accuracy work in v0.6.0:
validation on a vulnerable-target VM matrix is the next roadmap item; - Shared **host fingerprint** (`core/host.{h,c}`) populated once at
until then, the corpus is best understood as "compiles + detects + startup — kernel/distro/userns gates/sudo+polkit versions — exposed
structurally correct + honest on failure" — and the three ported to every module via `ctx->host`. 26 of 27 distinct modules consume it.
modules have not been run against a vulnerable target at all. - **Test harness** (`tests/test_detect.c`, `make test`) — 44 unit
tests over mocked host fingerprints; runs as a non-root user in CI.
- `--auto` upgrades: auto-enables `--active`, per-detect 15s timeout,
fork-isolated detect + exploit so a crashing module can't tear down
the dispatcher, structured per-module verdict table, scan summary.
- `--dry-run` flag (preview without firing; no `--i-know` needed).
- Pinned mainline fix commits for the 3 ported modules — `detect()`
is version-pinned, not just precondition-only.
Empirical end-to-end validation on a vulnerable-target VM matrix is
the next roadmap item; until then, the corpus is best understood as
"compiles + detects + structurally correct + honest on failure" —
and the three ported modules have not been run against a vulnerable
target at all.
See [`ROADMAP.md`](ROADMAP.md) for the next planned modules and See [`ROADMAP.md`](ROADMAP.md) for the next planned modules and
infrastructure work. infrastructure work.
+1 -1
View File
@@ -15,7 +15,7 @@ major-version bump.
```json ```json
{ {
"version": "0.5.0", "version": "0.6.0",
"modules": [ /* ... per-module entries ... */ ] "modules": [ /* ... per-module entries ... */ ]
} }
``` ```
+1 -1
View File
@@ -33,7 +33,7 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#define SKELETONKEY_VERSION "0.5.0" #define SKELETONKEY_VERSION "0.6.0"
static const char BANNER[] = static const char BANNER[] =
"\n" "\n"