Release Aggregate CVE Gate

Gate ID: release-aggregate-cve

Enforces aggregate CVE count limits per release by severity level. Unlike per-finding gates, this gate evaluates the total CVE profile of a release candidate.

How It Works

  1. Counts CVE findings by severity (Critical, High, Medium, Low)
  2. Optionally filters by suppression status and reachability
  3. Compares counts against configured limits
  4. Blocks if any limit is exceeded
  5. Warns when counts approach limits (80% threshold)

Configuration

{
  "Policy": {
    "Gates": {
      "ReleaseAggregateCve": {
        "Enabled": true,
        "MaxCritical": 0,
        "MaxHigh": 3,
        "MaxMedium": 20,
        "MaxLow": null,
        "MaxTotal": null,
        "CountSuppressed": false,
        "OnlyCountReachable": false,
        "Environments": {
          "development": {
            "Enabled": false
          },
          "staging": {
            "MaxCritical": 1,
            "MaxHigh": 10
          },
          "production": {
            "MaxCritical": 0,
            "MaxHigh": 0,
            "OnlyCountReachable": true
          }
        }
      }
    }
  }
}

Options

OptionTypeDefaultDescription
EnabledbooltrueWhether the gate is active
MaxCriticalint?0Maximum critical CVEs (CVSS 9.0+); null = unlimited
MaxHighint?3Maximum high CVEs (CVSS 7.0-8.9); null = unlimited
MaxMediumint?20Maximum medium CVEs (CVSS 4.0-6.9); null = unlimited
MaxLowint?nullMaximum low CVEs (CVSS 0.1-3.9); null = unlimited
MaxTotalint?nullMaximum total CVEs regardless of severity; null = unlimited
CountSuppressedboolfalseInclude suppressed/excepted CVEs in counts
OnlyCountReachableboolfalseOnly count CVEs with reachable code paths
Environmentsdict{}Per-environment overrides

Severity Classification

CVSS ScoreSeverity
9.0 - 10.0Critical
7.0 - 8.9High
4.0 - 6.9Medium
0.1 - 3.9Low
None/InvalidUnknown

Example Gate Results

Pass:

Release CVE counts within limits. Critical: 0, High: 2, Medium: 15, Low: 8

Pass (with warning):

Release CVE counts within limits. Critical: 0, High: 2, Medium: 15, Low: 8. Warnings: High CVE count (2) approaching limit (3)

Fail:

Release CVE aggregate limits exceeded: Critical: 1/0, High: 5/3

Fail (total limit):

Release CVE aggregate limits exceeded: Total: 55/50

CLI Usage

# Evaluate aggregate gate
stella policy evaluate --gate release-aggregate-cve --image myapp:v1.2.3

# Custom limits
stella policy evaluate --gate release-aggregate-cve \
  --max-critical 0 --max-high 5 --max-medium 30 \
  --image myapp:v1.2.3

# Only count reachable CVEs
stella policy evaluate --gate release-aggregate-cve --only-reachable --image myapp:v1.2.3

# Include suppressed CVEs
stella policy evaluate --gate release-aggregate-cve --count-suppressed --image myapp:v1.2.3

Suppression Handling

When CountSuppressed: false (default):

When CountSuppressed: true:

Progressive Environment Strategy

Recommended limit progression:

EnvironmentCriticalHighMediumNotes
DevelopmentDisabled--No blocking in dev
Staging11050Lenient for testing
Production0020Strict, reachable-only

Last updated: 2026-01-19.