fa0228df9b
build / build (clang / debug) (push) Waiting to run
build / build (clang / default) (push) Waiting to run
build / build (gcc / debug) (push) Waiting to run
build / build (gcc / default) (push) Waiting to run
build / sanitizers (ASan + UBSan) (push) Waiting to run
build / clang-tidy (push) Waiting to run
build / drift-check (CISA KEV + Debian tracker) (push) Waiting to run
build / static-build (push) Waiting to run
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
CVE metadata refresh:
- Added 8 entries to core/cve_metadata.c for the v0.8.0 + v0.9.0 module
CVEs. Two are CISA-KEV-listed:
- CVE-2018-14634 mutagen_astronomy (2026-01-26, CWE-190)
- CVE-2025-32463 sudo_chwoot (2025-09-29, CWE-829)
- Populated via direct curl when refresh-cve-metadata.py's Python urlopen
hung on CISA's HTTP/2 endpoint for ~55 min — same data, different
transport.
dirtydecrypt module bug fix:
- dd_detect() was wrongly gating 'predates the bug' on kernel < 7.0
- Per NVD CVE-2026-31635: bug entered at 6.16.1 stable; vulnerable
through 6.18.22 / 6.19.12 / 7.0-rc7; fixed at 6.18.23 / 6.19.13 / 7.0
- Fix: predates-gate now uses 6.16.1; patched_branches[] adds {6,18,23}
- Re-verified: dirtydecrypt now correctly returns VULNERABLE on mainline
6.19.7 instead of OK. Previously a false negative on real vulnerable
kernels.
Footer goes from '10 in CISA KEV' to '12 in CISA KEV'. Verified count
stays at 28 but dirtydecrypt's record is now a TRUE VULNERABLE match
(was OK match).
86 lines
4.0 KiB
XML
86 lines
4.0 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630">
|
|
<defs>
|
|
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0" stop-color="#07070d"/>
|
|
<stop offset="1" stop-color="#0c0c16"/>
|
|
</linearGradient>
|
|
<linearGradient id="brand" x1="0" y1="0" x2="1" y2="0">
|
|
<stop offset="0" stop-color="#10b981"/>
|
|
<stop offset="1" stop-color="#06b6d4"/>
|
|
</linearGradient>
|
|
<radialGradient id="glow1" cx="0.2" cy="0.3" r="0.6">
|
|
<stop offset="0" stop-color="#10b981" stop-opacity="0.18"/>
|
|
<stop offset="1" stop-color="#10b981" stop-opacity="0"/>
|
|
</radialGradient>
|
|
<radialGradient id="glow2" cx="0.85" cy="0.8" r="0.5">
|
|
<stop offset="0" stop-color="#a855f7" stop-opacity="0.16"/>
|
|
<stop offset="1" stop-color="#a855f7" stop-opacity="0"/>
|
|
</radialGradient>
|
|
</defs>
|
|
|
|
<!-- backgrounds -->
|
|
<rect width="1200" height="630" fill="url(#bg)"/>
|
|
<rect width="1200" height="630" fill="url(#glow1)"/>
|
|
<rect width="1200" height="630" fill="url(#glow2)"/>
|
|
|
|
<!-- diamond mark -->
|
|
<g transform="translate(80,140)">
|
|
<rect x="0" y="0" width="36" height="36" transform="rotate(45 18 18)" fill="url(#brand)"/>
|
|
</g>
|
|
|
|
<!-- wordmark -->
|
|
<text x="142" y="170" font-family="'Space Grotesk','Inter',sans-serif" font-weight="700" font-size="68" fill="#ecedf7" letter-spacing="-2">
|
|
SKELETONKEY
|
|
</text>
|
|
|
|
<!-- tagline -->
|
|
<text x="80" y="240" font-family="'Inter',sans-serif" font-size="30" fill="#c5c5d3" font-weight="500">
|
|
Curated Linux LPE corpus.
|
|
</text>
|
|
<text x="80" y="278" font-family="'Inter',sans-serif" font-size="30" fill="#c5c5d3" font-weight="500">
|
|
Every year 2016 → 2026. 28 of 34 verified.
|
|
</text>
|
|
|
|
<!-- stat chips -->
|
|
<g transform="translate(80,360)">
|
|
<!-- 39 modules -->
|
|
<rect x="0" y="0" width="190" height="58" rx="29" fill="#161628" stroke="#25253c"/>
|
|
<text x="28" y="38" font-family="'JetBrains Mono',monospace" font-weight="700" font-size="22" fill="#ecedf7">39</text>
|
|
<text x="64" y="37" font-family="'Inter',sans-serif" font-size="16" fill="#8a8a9d">modules</text>
|
|
|
|
<!-- 28 VM-verified -->
|
|
<rect x="206" y="0" width="240" height="58" rx="29" fill="#161628" stroke="#10b981" stroke-opacity="0.5"/>
|
|
<text x="234" y="38" font-family="'JetBrains Mono',monospace" font-weight="700" font-size="22" fill="#34d399">28</text>
|
|
<text x="270" y="37" font-family="'Inter',sans-serif" font-size="16" fill="#8a8a9d">✓ VM-verified</text>
|
|
|
|
<!-- 12 KEV -->
|
|
<rect x="482" y="0" width="218" height="58" rx="29" fill="#161628" stroke="#ef4444" stroke-opacity="0.4"/>
|
|
<text x="510" y="38" font-family="'JetBrains Mono',monospace" font-weight="700" font-size="22" fill="#ef4444">12</text>
|
|
<text x="546" y="37" font-family="'Inter',sans-serif" font-size="16" fill="#8a8a9d">★ in CISA KEV</text>
|
|
|
|
<!-- 151 rules -->
|
|
<rect x="736" y="0" width="232" height="58" rx="29" fill="#161628" stroke="#25253c"/>
|
|
<text x="764" y="38" font-family="'JetBrains Mono',monospace" font-weight="700" font-size="22" fill="#ecedf7">151</text>
|
|
<text x="810" y="37" font-family="'Inter',sans-serif" font-size="16" fill="#8a8a9d">detection rules</text>
|
|
</g>
|
|
|
|
<!-- terminal mockup -->
|
|
<g transform="translate(80,478)">
|
|
<rect x="0" y="0" width="1040" height="92" rx="12" fill="#0a0a14" stroke="#25253c"/>
|
|
<!-- bar -->
|
|
<circle cx="22" cy="22" r="6" fill="#ff5f57"/>
|
|
<circle cx="42" cy="22" r="6" fill="#febc2e"/>
|
|
<circle cx="62" cy="22" r="6" fill="#28c840"/>
|
|
<line x1="0" y1="44" x2="1040" y2="44" stroke="#1c1c2d"/>
|
|
<text x="24" y="78" font-family="'JetBrains Mono',monospace" font-size="20" fill="#ecedf7">
|
|
<tspan fill="#10b981">$</tspan> skeletonkey --explain nf_tables <tspan fill="#5b5b75"># operator briefing in one command</tspan>
|
|
</text>
|
|
</g>
|
|
|
|
<!-- subtle url at very bottom -->
|
|
<text x="1120" y="610" font-family="'JetBrains Mono',monospace" font-size="14" fill="#5b5b75" text-anchor="end">
|
|
karazajac.github.io/SKELETONKEY
|
|
</text>
|
|
</svg>
|