README.md (2249B)
1 # cve-toolkit 2 3 A lightweight CVE detection toolkit for Linux systems. 4 5 ## Detected Vulnerabilities 6 7 | CVE | Alias | Details | 8 | ------------------------------------------------------------------ | --------------- | -------------------------------------------------------------------------- | 9 | [CVE-2016-5195](https://nvd.nist.gov/vuln/detail/CVE-2016-5195) | dirtycow | Privileged page-cache write via COW race (`pokedata` + `procmem` variants) | 10 | [CVE-2026-31431](https://www.cve.org/CVERecord?id=CVE-2026-31431) | CopyFail | Kernel crypto initialization bypass via `algif_aead` | 11 | [CVE-2026-43284](https://www.cve.org/CVERecord?id=CVE-2026-43284) | DirtyFrag | xfrm-ESP page-cache write LPE | 12 | [CVE-2026-43499](https://www.cve.org/CVERecord?id=CVE-2026-43499) | GhostLock | Futex PI requeue deadlock race leading to kernel stack UAF | 13 | [CVE-2026-46333](https://nvd.nist.gov/vuln/detail/CVE-2026-46333) | ssh-keysign-pwn | pidfd_getfd FD theft via mm-NULL dumpable bypass | 14 15 ## Build 16 17 ```bash 18 make 19 ``` 20 21 ## Usage 22 23 ```bash 24 ./cve-toolkit # Run all detectors 25 ./cve-toolkit -v # Run with verbose exploit logging 26 ./cve-toolkit --license # Print license and exit 27 ./cve-toolkit --help # Show help 28 ``` 29 30 The tool runs all bundled detectors, reports `[pass]`/`[fail]` per check to stderr, prints detected CVE IDs to stdout, and shows remediation steps. Exit code is `0` if all clean, `1` if any vulnerabilities are found. 31 32 ## Adding Detectors 33 34 Detectors live under `src/detector/`. Each `.c` file registers itself at startup via a `__attribute__((constructor))` function: 35 36 ```c 37 int detector_cve_XXXX_XXXXX(struct cve_context *ctx) { 38 // return 0 for pass, non-zero for fail 39 } 40 41 __attribute__((constructor)) 42 void detector_cve_XXXX_XXXXX_setup(void) { 43 detector_queue_append("CVE-XXXX-XXXXX", "Nickname", "Remediation text here.", detector_cve_XXXX_XXXXX); 44 } 45 ``` 46 47 Then just `make` — the Makefile picks up all `.c` files automatically.