Recheck Policy Reference

Overview

A Recheck Policy defines conditions that trigger automatic re-evaluation of an exception. When conditions are met, the exception may be flagged for review, require re-approval, or be automatically revoked.

Policy Model

recheckPolicy:
  policyId: "policy-critical-cves"
  name: "Critical CVE Recheck"
  conditions:
    - type: EPSSAbove
      threshold: 0.5
      action: RequireReapproval
    - type: ReachGraphChange
      action: Block
    - type: KEVFlagged
      action: Block
    - type: ExpiryWithin
      threshold: 7  # days
      action: Warn
  defaultAction: Warn
  isActive: true

Condition Types

EPSSAbove

Triggers when EPSS score exceeds threshold.

ParameterTypeDescription
thresholddecimalEPSS score threshold (0.0-1.0)
actionRecheckActionAction when triggered

Example:

- type: EPSSAbove
  threshold: 0.5
  action: RequireReapproval

CVSSAbove

Triggers when CVSS score exceeds threshold.

ParameterTypeDescription
thresholddecimalCVSS score threshold (0.0-10.0)
actionRecheckActionAction when triggered

ReachGraphChange

Triggers when reachability graph changes (new paths discovered).

ParameterTypeDescription
actionRecheckActionAction when triggered

Use case: Exception was based on “unreachable” status; new analysis shows reachability.

UnknownsAbove

Triggers when unknown budget exceeds threshold.

ParameterTypeDescription
thresholdintegerMaximum allowed unknowns
actionRecheckActionAction when triggered

KEVFlagged

Triggers when CVE is added to CISA KEV catalog.

ParameterTypeDescription
actionRecheckActionAction when triggered

Best practice: Always use Block action for KEV additions.

VEXStatusChange

Triggers when VEX status changes (e.g., NotAffected → Affected).

ParameterTypeDescription
actionRecheckActionAction when triggered

NewCVEInPackage

Triggers when new CVE is discovered in the same package.

ParameterTypeDescription
actionRecheckActionAction when triggered

ExpiryWithin

Triggers when exception nears expiry.

ParameterTypeDescription
thresholdintegerDays before expiry
actionRecheckActionAction when triggered

PackageVersionChange

Triggers when package version changes in artifact.

ParameterTypeDescription
actionRecheckActionAction when triggered

Actions

Warn

Log warning but allow exception to remain active.

RequireReapproval

Move exception back to “pending” status requiring re-approval.

Revoke

Automatically revoke the exception.

Block

Fail build/deployment pipeline.

Environment Scoping

Conditions can be scoped to specific environments:

- type: EPSSAbove
  threshold: 0.3
  environmentScope:
    - prod
    - staging
  action: Block
- type: EPSSAbove
  threshold: 0.7
  environmentScope:
    - dev
  action: Warn

Evaluation Flow

1. Scan triggered
2. Get active exceptions for artifact
3. For each exception with recheck policy:
   a. Evaluate each condition
   b. Check environment scope
   c. Record triggered conditions
4. Determine highest-priority action
5. Apply action (warn/reapproval/revoke/block)
6. Update exception with recheck result

Persistence

Build Gate Integration

Recheck policies integrate with build gates:

# In CI/CD pipeline
- name: check-exceptions
  uses: stellaops/exception-gate@v1
  with:
    artifact: ${{ env.IMAGE_DIGEST }}
    environment: production
    fail-on: block

Best Practices

  1. Start with Warn: Begin with warning actions, escalate based on data
  2. KEV = Block: Always block on KEV additions
  3. Environment Tiers: Stricter policies for production
  4. Regular Review: Review triggered conditions monthly
  5. Document Rationale: Explain threshold choices

Example Policies

High-Security Policy

recheckPolicy:
  policyId: "high-security"
  name: "High Security Recheck"
  conditions:
    - type: EPSSAbove
      threshold: 0.3
      action: Block
    - type: CVSSAbove
      threshold: 7.0
      action: RequireReapproval
    - type: KEVFlagged
      action: Block
    - type: ReachGraphChange
      action: Block
    - type: VEXStatusChange
      action: RequireReapproval
  defaultAction: Warn

Standard Policy

recheckPolicy:
  policyId: "standard"
  name: "Standard Recheck"
  conditions:
    - type: EPSSAbove
      threshold: 0.7
      action: RequireReapproval
    - type: KEVFlagged
      action: Block
    - type: ExpiryWithin
      threshold: 14
      action: Warn
  defaultAction: Warn