Fix · Autotriage

Fix what can hurt you first.

Autotriage sets Heeler Risk on each dependency and code finding: Urgent, Plan or Defer. It asks how critical the service is, whether an attacker can reach the flaw, and whether it is under attack. Teams get a short list to fix now.

CVE-2025-24813tomcat-embed-core 10.1.34
checkout-api
1How critical is the service?High
Tier 1 · Production
2Can an attacker reach it?High
Function reachableRuntime library reachableInternet accessibleMitigated: NoChaining: reaches PII datastore
3Is it under attack?High
Exploit threat: Confirmed
Same inputs, same answer. No LLM involved
UrgentFix within 14 days
Heeler Risk

Your teams fix the short list first.

Most findings are not exploitable today. Heeler Risk separates the few that are, and each level carries its own deadline.

Urgent

Fix now.

Reachable from the internet, on a service that matters, with a threat signal.

Default SLO 14 days
Plan

Schedule it.

Real risk, but not urgent yet.

Default SLO 60 days
Defer

Track it.

Not exploitable today. Watched, and raised if that changes.

Default SLO 120 days
Automated · deterministic · auditable

Your context sets the priority. Not an LLM's opinion.

An LLM asked what matters gives a different answer each run and cannot show its work. Autotriage applies fixed rules to what the Context Engine knows about your environment, so the same inputs always give the same level.

AutomatedRuns on every finding as it lands, and again when your environment changes.
DeterministicSame inputs, same level, on every run.
AuditableEach finding shows the inputs behind its level.
Context drivenYour deployments, exposure and threat data. Not a model's guess.

Six finding types, six rules. Choose one:

Three answers pick one cell: how critical the service is, whether an attacker can reach it, and whether it is under attack.

INPUTS FROM THE CONTEXT ENGINEFIXED DECISION TABLE · NO WEIGHTSBusiness impactPICKS THE TABLETier 1-2, in productionHighTier 3-4, in productionMediumOutside productionLowEnvironment impactPICKS THE ROWWHAT HEELER CHECKSRunning deploymentRuntime library loadedVulnerable function calledInternet accessibleMitigations checkedChaining: datastores, secrets, Tier 1CVSS impactExposed, full control or a path to dataHighExposed, limited damageMediumNot exposed, or mitigatedLowThreatPICKS THE COLUMNOn CISA or VulnCheck KEV, or maliciousHighEPSS 0.40 or higherMediumNo threat signalLowBusiness HighTier 1-2Business MediumTier 3-4Business LowOutside productionLowMediumHighTHREAT →HighMediumLowENVIRONMENT ↓PlanUrgentUrgentPlanPlanUrgentDeferDeferDeferPlanPlanUrgentPlanPlanPlanDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferRows: environment impact·Columns: threat· Pick the business impact above

The traced path decides. A flaw on an open internet route outranks the same flaw behind auth on an internal service.

INPUTS FROM THE CONTEXT ENGINEFIXED DECISION TABLE · NO WEIGHTSBusiness impactPICKS THE TABLETier 1-2, in productionHighTier 3-4, in productionMediumOutside productionPlan at mostEnvironment impactPICKS THE ROWWHAT HEELER CHECKSInternet accessiblePath from a network entryAuth on the endpointCredentials, PII or financial dataChaining: data, Tier 1, auth issuerSuppressions, false positivesInternet accessible, no authHighInternet accessible, behind authMediumInternal only, or mitigatedLowSensitive data or chaining+1 levelThreatPICKS THE COLUMNWeakness on the CWE KEV Top 10HighCWE Top 25, CAPEC or OWASP Top 10MediumActive campaign+1 levelNo CWE dataRule severityBusiness HighTier 1-2Business MediumTier 3-4Business LowOutside productionLowMediumHighTHREAT →HighMediumLowENVIRONMENT ↓PlanUrgentUrgentPlanPlanUrgentDeferDeferDeferPlanPlanUrgentPlanPlanPlanDeferDeferDeferPlanPlanPlanPlanPlanPlanDeferDeferDeferRows: environment impact·Columns: threat· Pick the business impact above

The misconfiguration is matched to the live cloud resource it builds, and ranked on what Heeler sees there.

INPUTS FROM THE CONTEXT ENGINEFIXED DECISION TABLE · NO WEIGHTSBusiness impactPICKS THE TABLETier 1-2, in productionHighTier 3-4, in productionMediumOutside productionPlan at mostEnvironment impactPICKS THE ROWWHAT HEELER CHECKSMatched live cloud resourceProbe, network config, S3 policySeen darkExposure declared in the IaCSuppressions, false positivesLive resource seen internet accessibleHighExposure declared in code onlyMediumSeen dark, unknown, or mitigatedLowThreatPICKS THE COLUMNWeakness on the CWE KEV Top 10HighCWE Top 25, CAPEC or OWASP Top 10MediumNo CWE dataRule severityBusiness HighTier 1-2Business MediumTier 3-4Business LowOutside productionLowMediumHighTHREAT →HighMediumLowENVIRONMENT ↓PlanUrgentUrgentPlanPlanUrgentDeferDeferDeferPlanPlanUrgentPlanPlanPlanDeferDeferDeferPlanPlanPlanPlanPlanPlanDeferDeferDeferRows: environment impact·Columns: threat· Pick the business impact above

An image is ranked by the workloads that run it: their tier, their environment, and whether they are internet accessible.

INPUTS FROM THE CONTEXT ENGINEFIXED DECISION TABLE · NO WEIGHTSBusiness impactPICKS THE TABLETier 1-2 workload, in productionHighTier 3-4 workload, in productionMediumRuns only outside productionLowEnvironment impactPICKS THE ROWWHAT HEELER CHECKSWorkloads running the imageInternet accessible workloadTier and environment of eachCVSS impactExposed workload, full controlHighExposed workload, limited damageMediumNo internet accessible workloadLowThreatPICKS THE COLUMNKnown exploited (KEV)HighEPSS 0.40 or higherMediumNo threat signalLowBusiness HighTier 1-2Business MediumTier 3-4Business LowOutside productionLowMediumHighTHREAT →HighMediumLowENVIRONMENT ↓PlanUrgentUrgentPlanPlanUrgentDeferDeferDeferPlanPlanUrgentPlanPlanPlanDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferDeferRows: environment impact·Columns: threat· Pick the business impact above

Heeler scans git and its full history, every branch and every commit. It discards fakes with an offline checksum check, then proves what is left with a safe, read-only live test. Each secret lands in an action bucket by what that test found.

BEFORE ANYTHING IS SORTED1 · Scan git and all its historyEvery branch and every commit, so asecret deleted later is still found.2 · Drop the fakes offlineBuilt-in token checksums verifiedwith no network call, nothing sent.3 · Prove it liveA read-only call to the provider,or a test connection for databases.Default branchElsewhere in gitUnknownEACH SECRET SHOWS WHERE IT LIVESSO NO CANDIDATE LEAVES YOUR ENVIRONMENTFabricated look-alikes never become findings.EVIDENCE ON EVERY FINDINGThe provider's response, field by field.ACTION BUCKETWHY IT LANDS THERERotate nowProven validHeeler tested it and the credential works. Rotate and revoke it now.RotatePresumed liveReal key material, like a private key, with no provider to test it against. Treated as live until rotated.TriageNo verdictNo test applies, or the provider's answer did not settle it. Review these by hand.SORTED BY DETECTION CONFIDENCEHigh→Medium→Lowhow sure Heeler is it is a real secretA secret with a missing or unknown status lands here too, never in No action.No actionConfirmed inactiveAlready rotated or revoked, or not valid key material. A rotated key moves here on its own.ExpectedCanary tokenA decoy you planted. Not tested, and not a leak.

Each agent file, skill and MCP config gets a 0 to 100 safety score from fixed arithmetic on what Heeler finds in it.

WHAT HEELER FINDS IN THE FILESAFETY SCORE · 0 TO 100 · SAME INPUTS, SAME SCORERule findingsSTATIC RULESCritical finding95 pointsHigh finding80 pointsLow confidencecounts lessAI reviewLLM JUDGEPrompt injection, data exfiltrationfoundDestructive or privileged actionsfoundMalicious verdict10 or lowerReachHOSTS AND SCRIPTSRemote script that runs on its own70 pointsPaste site, raw IP, plain HTTP40 pointsWell-known developer hosts0 pointsThe worst factor sets the riskThe other two add 15% of theirs, capped at 100.Score = 100 minus risk.070100AT RISK · BELOW 70SAFER
Re-evaluated

Priorities follow your environment as it changes.

Flip what is true about one real CVE and watch the level move. Heeler does this on its own whenever your environment changes. No re-triage meeting.

CVE-2025-24813tomcat-embed-core 10.1.34checkout-api
Tier 1 · ProductionMission-critical. Business impact High.
Function reachable
Your code calls the vulnerable function
Runtime library reachable
The library runs in the deployment
Internet accessible
Measured from the live deployment
Mitigated: No
e.g. Tomcat default servlet is read-only
Heeler Risk
UrgentFix within 14 days
PlanFix within 60 days
DeferTrack it, 120 days

Exploitable, and exploitation is confirmed.

Try it: turn off Internet accessible, or add a mitigation.

Automated response

You decide what happens after triage. Heeler does it.

Workflows turn each level into an action on every new finding, routed to the owning team.

Urgent, dependency or code→Set a 7-day SLOOpen a ticketAuto-fix opens a validated PR
Secret, Rotate now→Ticket to the owning teamAlert security in Slack, Teams or email
Where Auto-fix takes a dependency or code findingValidated PR, merge-readySCA Auto-fix →SAST Auto-fix →
SLOs

Every level comes with a deadline.

You set the deadlines: base them on Heeler Risk or on severity, and choose the days for each level, separately for dependencies and code. Heeler then tracks every finding against them, and acts on them for you.

Default windows. Change any of them.

By Heeler RiskDefault

Deadlines follow real-world risk: exposure, reachability, business impact and threat.

Urgent
14 days
Plan
60 days
Defer
120 days
By severity

CVSS for dependencies, rule severity for code. For programs whose framework ties deadlines to severity, like SOC 2, ISO 27001, FedRAMP or PCI DSS.

Critical
15 days
High
30 days
Medium
45 days
Low
90 days
scheduleTracksevery finding from first detection to the deployed fix.
campaignEscalatesbefore a deadline lapses: a message to the owner, a ticket, a Slack alert.
ruleEnforceswith guardrails that hold merges while findings are past due.
monitoringReportswhat is on track, due soon and overdue, across the program.
Exceptions · auditable

Your team's judgment, on the record.

Sometimes the right call is not the default: a false positive, a control Heeler cannot see, no fix available yet, or a risk the business accepts. Record it as an override, with a reason.

event
SLO Override

More time, same risk.

For no fix available, a complex fix, or other priorities. The due date moves. The level stays, and the original due date stays on record.

timer
Risk Override

A different level, with a reason.

For not reachable, a false positive, an environment configuration or an accepted risk. The finding drops to Defer. Set an expiry and the original level returns when it passes.

history
Reviewable

Who, when and why.

Live exceptions are listed with who granted them, the reason and when they lapse. Each change is on the finding's history.

Purpose-built for the AI SDLC

The most dangerous findings get fixed first.