BlastGuard
CVE scanners produce finding counts
Blast radius predicted before CVE count
Andrey Lesnikov · 2026-11-02 · sources checked 2026-11-02
Blast-radius policy turns SBOM, VEX and exposure into ALLOW / WARN / BLOCK — fail closed when inventory is incomplete.
Scanner ticket counts are not a control plane. A CVE that never reaches a running, internet-exposed workload is noise. A CVE that does — and still ships through CI or GitOps — is a missing kill-switch.
This guide is scoped to BlastGuard and the BlastGuard case, with the Policy as Code Guardrails case as the pattern companion. Claims about decisions, exit codes and remediation apply on that project's corpus only (fixtures, kind demos, documented CI runs).
Most pipelines already run Syft/Grype (or equivalent) and attach an SBOM. That answers "what is in the image?" It does not answer:
Without those answers, CI either blocks everything (noise) or ignores severity thresholds (false calm). The Policy as Code Guardrails case documents the gate pattern; BlastGuard is where supply-chain decisions that policy can enforce are proved on a corpus.
BlastGuard's documented lifecycle:
Admission (Kyverno / policy-controller) is a reference integration fed by these decisions, not an in-tree replacement for the scanner stack. BlastGuard sits above Syft/Grype/GUAC/Sigstore.
From the case evidence narrative (checked 2026-11-02):
| Condition | Behaviour on this corpus |
|---|---|
| Incomplete / empty twin inventory | No blast-radius ALLOW; UNKNOWN / incomplete-inventory (exit 1) |
| Missing evidence in the reachability triad | Missing evidence never yields ALLOW alone |
| OpenVEX bound to wrong digest / name | Rejected (fail closed) |
| Signed attestation verify failure | Fail closed |
| Exposed path with reachable CVE | BLOCK with reason (fixture demo) |
| Internal worker, same CVE | WARN in the kind demo |
| Fix image, radius zero | REMEDIATION PROVED (ALLOW) |
That posture matches the agent and GPU planes on this site: unavailable or incomplete policy must not become an implicit allow (Agent Security Contract, GPU Admission on Kueue).
Treat the decision CLI as a promotion gate:
Do not invent a second policy language inside the CD tool. Keep the decision envelope exportable and hash-checkable, then let GitOps reconcile only what the gate allowed.
Supply-chain kill-switches and MCP tool gates solve different planes:
| Plane | Question | Guide / case |
|---|---|---|
| Tool call | May this identity invoke this tool with these args? | MCP security checklist, ASC |
| Image promote | May this digest move given current blast radius? | This guide, BlastGuard |
| GPU admit | May this Workload take this flavor under policy? | GPU admission on Kueue |
Wire them with the same habit: explicit verdict + evidence + fail closed.
Cases
CVE scanners produce finding counts
Blast radius predicted before CVE count
Security and platform rules are often discovered only after deployment or during reviews
Standards enforced in CI, not slides
Agent and MCP stacks expand the attack surface beyond prompt text: tool misuse, poisoned tool descriptions, argument injection, and unapproved high-impact actions run without a pre-execution gate
0 false-ALLOW · 0 false-BLOCK on this corpus
Software supply-chain data is often generated late, stored separately, and disconnected from deployment decisions
SBOM on the delivery path, not quarterly