Guide · Agent security

BlastGuard kill-switch: blast radius before promote

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.

On this page

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).

CVE path through twin graph into an explainable promote gate
CVE path through twin graph into an explainable promote gate
CVE reach through the twin into ALLOW / WARN / BLOCK before promote. CVE Twin reachability BLOCK or ALLOW
CVE reach through the twin into ALLOW / WARN / BLOCK before promote.

Why finding counts fail as a gate

Most pipelines already run Syft/Grype (or equivalent) and attach an SBOM. That answers "what is in the image?" It does not answer:

  • is the vulnerable package present in a running workload?
  • is that workload network-reachable from a path that matters?
  • was execution observed for the risky component?
  • did a signed VEX statement bind to this exact digest?

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.

Decide on reach, not on ticket volume

BlastGuard's documented lifecycle:

  1. Discover — SBOM, advisories, VEX, Sigstore provenance enter the twin.
  2. Trace — walk CVE → package → image → workload → service → ingress; prune VEX / not-running / unreachable branches.
  3. Decide — return ALLOW / WARN / QUARANTINE / BLOCK with an explicit reason; CLI exit codes gate CI or GitOps promotion.
  4. Verify — after a fix image, recompute radius; zero affected running paths means remediation proved.

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.

Fail-closed when evidence is thin

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).

Where the kill-switch sits in GitOps

Treat the decision CLI as a promotion gate:

  • CI — non-zero exit on BLOCK / incomplete inventory stops the merge or the image promote job.
  • GitOps — same exit code in a PreSync / promotion workflow before Argo CD or Flux moves desired state (Argo CD vs Flux).
  • Human override — WARN can page; BLOCK should not be a dashboard-only event.

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.

How this relates to agent security

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.

Exit codes are the kill-switch — incomplete inventory never ALLOWs. CVE Twin reachability BLOCK or ALLOW
Exit codes are the kill-switch — incomplete inventory never ALLOWs.

Operational checklist

References

Related

Cases

Related cases.

Case 05 · Flagship

BlastGuard

  • SBOM
  • Advisories
  • Sigstore

CVE scanners produce finding counts

Blast radius predicted before CVE count

Case 15 · Pattern

Policy as Code Guardrails

  • OPA
  • Feedback
  • Promote

Security and platform rules are often discovered only after deployment or during reviews

Standards enforced in CI, not slides

Case 27 · Flagship

Agent Security Contract

  • CLI
  • Action
  • Policy

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

Case 06 · Pattern

SBOM Integration

  • SBOM
  • Attach
  • Scan

Software supply-chain data is often generated late, stored separately, and disconnected from deployment decisions

SBOM on the delivery path, not quarterly

Available for meaningful infrastructure conversations

Build systems that stay calm under pressure.

Available for conversations

Talk infrastructure

Book a working session

Meet ↗

Evidence first

For deep dives

Explore the systems

All cases ↗