Severity Levels¶
Mayo ASPM uses five severity levels to classify security findings. Each level indicates the potential impact and urgency of the issue.
Severity definitions¶
Critical¶
| Attribute | Value |
|---|---|
| Color | Red |
| Score range | CVSS 9.0-10.0 |
| Recommended SLA | 24 hours |
What it means: An actively exploitable vulnerability that could lead to full system compromise, data breach, or remote code execution without user interaction.
Examples:
- Remote code execution in a production dependency (e.g., Log4Shell)
- SQL injection in an authentication endpoint
- Hardcoded production database credentials in a public repository
- Known-exploited CVE (in CISA KEV) in a deployed service
Danger
Critical findings should be treated as potential incidents. Investigate immediately and remediate within 24 hours.
High¶
| Attribute | Value |
|---|---|
| Color | Orange |
| Score range | CVSS 7.0-8.9 |
| Recommended SLA | 7 days |
What it means: A serious vulnerability that could be exploited under certain conditions to compromise data or system integrity.
Examples:
- Cross-site scripting (XSS) in a user-facing application
- Server-side request forgery (SSRF) in an API endpoint
- Known CVE with a public exploit in a direct dependency
- Exposed API key with write permissions
Medium¶
| Attribute | Value |
|---|---|
| Color | Yellow |
| Score range | CVSS 4.0-6.9 |
| Recommended SLA | 30 days |
What it means: A vulnerability that could be exploited but requires specific conditions, user interaction, or insider access.
Examples:
- Reflected XSS requiring user interaction
- Vulnerable transitive dependency (not directly imported)
- Weak cryptographic algorithm in use
- Information disclosure through error messages
Low¶
| Attribute | Value |
|---|---|
| Color | Blue |
| Score range | CVSS 0.1-3.9 |
| Recommended SLA | 90 days |
What it means: A minor issue with limited security impact. May indicate a defense-in-depth weakness or code quality concern.
Examples:
- Deprecated function usage with a known replacement
- Missing security header (non-critical)
- Low-severity CVE in a dev-only dependency
- Verbose logging that could aid attackers
Info¶
| Attribute | Value |
|---|---|
| Color | Gray |
| Score range | N/A |
| Recommended SLA | None (informational) |
What it means: A finding with no direct security impact. Provided for awareness or compliance purposes.
Examples:
- Best-practice suggestion (e.g., "use strict mode")
- License compliance notice
- Outdated but non-vulnerable dependency
- Code quality observation from a security scanner
Severity mapping from scanners¶
Each scanner produces its own severity ratings. Mayo ASPM normalizes them:
| Scanner | Scanner severity | Mayo ASPM severity |
|---|---|---|
| Grype | Critical / High / Medium / Low / Negligible | Critical / High / Medium / Low / Info |
| Trivy | Critical / High / Medium / Low / Unknown | Critical / High / Medium / Low / Info |
| Semgrep | ERROR / WARNING / INFO | High / Medium / Info |
| Gitleaks | (all findings) | High (by default, configurable) |
Severity override
You can override the mapped severity in triage or priority policies. For example, elevate all Gitleaks findings to Critical for specific file patterns.
SLA recommendations by tier¶
| Severity | Startup / SMB | Mid-market | Enterprise |
|---|---|---|---|
| Critical | 72 hours | 24 hours | 4 hours |
| High | 14 days | 7 days | 3 days |
| Medium | 60 days | 30 days | 14 days |
| Low | 90 days | 90 days | 60 days |
| Info | No SLA | No SLA | No SLA |
Using severity in policies¶
Triage by severity¶
decision := "accept" if { input.finding.severity in ["critical", "high"] }
decision := "reject" if { input.finding.severity == "info" }
Priority scoring by severity¶
priority := 100 if input.finding.severity == "critical"
priority := 75 if input.finding.severity == "high"
priority := 50 if input.finding.severity == "medium"
priority := 25 if input.finding.severity == "low"
default priority := 0
PR gate by severity¶
Next steps¶
- Finding statuses — lifecycle states
- Priority policies — score findings by severity and other factors
- Triage workflows — handle each severity level