diff --git a/CVES.md b/CVES.md index 86c3470..f041573 100644 --- a/CVES.md +++ b/CVES.md @@ -23,16 +23,17 @@ Status legend: - ๐Ÿ”ด **DEPRECATED** โ€” fully patched everywhere relevant; kept for historical reference only -**Counts:** 31 modules total โ€” 28 verified (๐ŸŸข 14 ยท ๐ŸŸก 14) plus 3 -ported-but-unverified (`dirtydecrypt`, `fragnesia`, `pack2theroot` โ€” -see note below). ๐Ÿ”ต 0 ยท โšช 0 planned-with-stub ยท ๐Ÿ”ด 0. (One โšช row -below โ€” CVE-2026-31402 โ€” is a *candidate* with no module, not counted -as a module.) +**Counts:** 39 modules total covering 34 CVEs; **28 of 34 CVEs +verified end-to-end in real VMs** via `tools/verify-vm/`. ๐Ÿ”ต 0 ยท โšช 0 +planned-with-stub ยท ๐Ÿ”ด 0. (One โšช row below โ€” CVE-2026-31402 โ€” is a +*candidate* with no module, not counted as a module.) -> **Note on `dirtydecrypt` / `fragnesia` / `pack2theroot`:** all three -> are ported from public PoCs. The **exploit bodies** are not yet -> VM-verified end-to-end, so they're listed ๐ŸŸก but excluded from the -> 28-module verified corpus. +> **Note on unverified rows:** `vmwgfx` / `dirty_cow` / +> `mutagen_astronomy` / `pintheft` / `vsock_uaf` / `fragnesia` are +> blocked by their target environment (VMware-only, kernel < 4.4, +> mainline panic, kmod not autoloaded, or t64-transition libs), +> not by missing code. See +> [`tools/verify-vm/targets.yaml`](tools/verify-vm/targets.yaml). > > All three now have **pinned fix commits and version-based > `detect()`**: diff --git a/README.md b/README.md index a0c470b..93069ef 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ uid=1000(kara) gid=1000(kara) groups=1000(kara) $ skeletonkey --auto --i-know [*] auto: host=demo distro=ubuntu/24.04 kernel=5.15.0-56-generic arch=x86_64 [*] auto: active probes enabled โ€” brief /tmp file touches and fork-isolated namespace probes -[*] auto: scanning 31 modules for vulnerabilities... +[*] auto: scanning 39 modules for vulnerabilities... [+] auto: dirty_pipe VULNERABLE (safety rank 90) [+] auto: cgroup_release_agent VULNERABLE (safety rank 98) [+] auto: pwnkit VULNERABLE (safety rank 100) @@ -202,18 +202,19 @@ also compile (modules with Linux-only headers stub out gracefully). ## Status -**v0.9.0 cut 2026-05-24.** 39 modules across 34 CVEs โ€” **every -year 2016 โ†’ 2026 now covered**. v0.9.0 adds 5 gap-fillers: -`mutagen_astronomy` (CVE-2018-14634 โ€” closes 2018), `sudo_runas_neg1` -(CVE-2019-14287), `tioscpgrp` (CVE-2020-29661), `vsock_uaf` -(CVE-2024-50264 โ€” Pwnie 2025 winner), `nft_pipapo` (CVE-2024-26581 โ€” -Notselwyn II). v0.8.0 added 3 (`sudo_chwoot`/CVE-2025-32463, -`udisks_libblockdev`/CVE-2025-6019, `pintheft`/CVE-2026-43494). +**v0.9.2 cut 2026-05-24.** 39 modules across 34 CVEs โ€” **every +year 2016 โ†’ 2026 now covered**. v0.9.0 added 5 gap-fillers +(`mutagen_astronomy` / `sudo_runas_neg1` / `tioscpgrp` / `vsock_uaf` / +`nft_pipapo`); v0.8.0 added 3 (`sudo_chwoot` / `udisks_libblockdev` / +`pintheft`). v0.9.1 and v0.9.2 are verification-only sweeps that took +the verified count from 22 โ†’ 28 by booting real vulnerable kernels +(Ubuntu mainline 5.4.0-26, 5.15.5, 6.19.7 + provisioner-built sudo +1.9.16p1 + Debian 12 + polkit allow rule for udisks). **28 empirically verified** against real Linux VMs (Ubuntu 18.04 / -20.04 / 22.04 + Debian 11 / 12 + mainline kernels 5.15.5 / 6.1.10 -from kernel.ubuntu.com). 88-test unit harness + ASan/UBSan + -clang-tidy on every push. 4 prebuilt binaries (x86_64 + arm64, each -in dynamic + static-musl flavors). +20.04 / 22.04 + Debian 11 / 12 + mainline kernels from +kernel.ubuntu.com). 88-test unit harness + ASan/UBSan + clang-tidy on +every push. 4 prebuilt binaries (x86_64 + arm64, each in dynamic + +static-musl flavors). Reliability + accuracy work in v0.7.x: - Shared **host fingerprint** (`core/host.{h,c}`) populated once at @@ -231,15 +232,19 @@ Reliability + accuracy work in v0.7.x: trace, OPSEC footprint, detection-rule coverage, verified-on records. Paste-into-ticket ready. - **CVE metadata pipeline** (`tools/refresh-cve-metadata.py`) โ€” fetches - CISA KEV catalog + NVD CWE; 10 of 26 modules cover KEV-listed CVEs. -- **119 detection rules** across auditd / sigma / yara / falco; one + CISA KEV catalog + NVD CWE; 10 of 34 modules cover KEV-listed CVEs. +- **151 detection rules** across auditd / sigma / yara / falco; one command exports the corpus to your SIEM. - `--auto` upgrades: per-detect 15s timeout, fork-isolated detect + exploit, structured verdict table, scan summary, `--dry-run`. -Not yet verified (4 of 26 CVEs): `vmwgfx` (VMware-guest only), -`dirty_cow` (needs โ‰ค 4.4 kernel), `dirtydecrypt` + `fragnesia` (need -Linux 7.0 โ€” not shipping yet). Rationale in +Not yet verified (6 of 34 CVEs): `vmwgfx` (VMware-guest only), +`dirty_cow` (needs โ‰ค 4.4 kernel), `mutagen_astronomy` (mainline +4.14.70 panics on Ubuntu 18.04 rootfs โ€” needs CentOS 6 / Debian 7), +`pintheft` + `vsock_uaf` (kernel modules not autoloaded on common +Vagrant boxes), `fragnesia` (mainline 7.0.5 .debs need t64-transition +libs from Ubuntu 24.04+ / Debian 13+; no Parallels-supported box has +those yet). Rationale in [`tools/verify-vm/targets.yaml`](tools/verify-vm/targets.yaml). See [`ROADMAP.md`](ROADMAP.md) for the next planned modules and diff --git a/docs/index.html b/docs/index.html index 851e296..7a10a88 100644 --- a/docs/index.html +++ b/docs/index.html @@ -83,7 +83,7 @@
0modules
0โœ“ VM-verified
-
0โ˜… in CISA KEV
+
0โ˜… in CISA KEV
0detection rules
@@ -210,7 +210,7 @@ uid=0(root) gid=0(root)
๐Ÿ›ก
-

119 detection rules

+

151 detection rules

auditd ยท sigma ยท yara ยท falco. One command emits the corpus for your SIEM. Each rule grounded in the module's own syscalls. @@ -227,7 +227,7 @@ uid=0(root) gid=0(root)

โ˜…

CISA KEV prioritized

- 10 of 26 CVEs in the corpus are in CISA's Known Exploited + 10 of 34 CVEs in the corpus are in CISA's Known Exploited Vulnerabilities catalog โ€” actively exploited in the wild. Refreshed on demand via tools/refresh-cve-metadata.py.

@@ -294,9 +294,9 @@ uid=0(root) gid=0(root) tools/verify-vm/ spins up known-vulnerable kernels (stock distro + mainline from kernel.ubuntu.com), runs --explain --active per module, and records the - verdict. 22 of 26 CVEs confirmed against + verdict. 28 of 34 CVEs confirmed against real Linux across Ubuntu 18.04 / 20.04 / 22.04 + Debian 11 / 12 - + mainline 5.15.5 / 6.1.10. Records baked into the binary; + + mainline 5.4.0-26 / 5.15.5 / 6.1.10 / 6.19.7. Records baked into the binary; --list shows โœ“ per module.

@@ -309,7 +309,7 @@ uid=0(root) gid=0(root)
-

26 CVEs across 10 years. โ˜… = actively exploited (CISA KEV).

+

34 CVEs across 10 years. โ˜… = actively exploited (CISA KEV).

@@ -414,7 +414,7 @@ uid=0(root) gid=0(root)
๐ŸŽ“

Researchers / CTF

- 26 CVEs, 10-year span, each with the original PoC author + 34 CVEs, 10-year span, each with the original PoC author credited and the kernel-range citation auditable. --explain shows the reasoning chain; detection rules let you practice both sides. Source is the documentation. @@ -511,13 +511,13 @@ uid=0(root) gid=0(root)

shipped
diff --git a/docs/og.png b/docs/og.png index 2ac924d..7e2e510 100644 Binary files a/docs/og.png and b/docs/og.png differ diff --git a/docs/og.svg b/docs/og.svg index 675539c..b569400 100644 --- a/docs/og.svg +++ b/docs/og.svg @@ -54,9 +54,9 @@ 28 โœ“ VM-verified - + - 11 + 10 โ˜… in CISA KEV