Skip to main content

Prioritising Findings for Remediation

Sixty findings and two engineers. How to sequence the work so the risk comes down fastest, and why fixing by severity order is rarely the right plan.

4 min read

The report has sixty findings. You have two engineers and a product roadmap that already existed. Working down the list from most severe is the obvious approach and it is usually not the fastest way to reduce risk.

This is about sequencing the work. Reading an individual finding — severity, CVSS, what the vector means — is a different exercise, covered in how to read a security finding.

Group before you sequence

The first pass is not prioritisation, it is consolidation. Most reports contain fewer problems than findings.

Collapse by weakness class. Four findings sharing a CWE are usually one habit expressed four times. Fixing them individually leaves the fifth instance, written next quarter, exactly as vulnerable. Fixing the pattern — a shared validation layer, a template engine that escapes by default, an authorisation helper used everywhere — closes all four and prevents the next one.

Collapse by root cause. Several findings frequently trace to one decision: a framework used without its protections enabled, a service account with excessive rights, a base image that is out of date.

After this pass a sixty-finding report is often twelve pieces of work. That is a plan; sixty tickets is a backlog.

The sequencing rule

Order by risk reduced per unit of effort, not by severity.

Four practical bands:

  • Serious and quick. High risk, low effort — a configuration change, a missing header, a default credential, a permission correction. Do these first regardless of what else is happening. They are frequently done in a day and remove a disproportionate share of the exposure.
  • Serious and slow. High risk, structural — a broken authorisation model, an authentication rewrite. These need planning, design and a release window. Start them now, because they will take a quarter, and put an interim mitigation in place meanwhile if one exists.
  • Minor and quick. Batch them into one piece of work. Doing twenty small fixes together costs far less than twenty separately, because the overhead is in the release, not the change.
  • Minor and slow. The candidates for formal acceptance. Some of these should not be fixed, and saying so explicitly is better than leaving them to rot at the bottom of a list.

Three things that override the ordering

Active exploitation. If a finding matches something being exploited in the wild, it moves to the front whatever its score. That is what the Temporal metrics in CVSS exist to capture, and almost no report populates them, so it is your check to make.

Exposure. Internet-facing before internal, every time. Same flaw, different reachability, different urgency.

Chains. Where the report identifies a chain, the priority belongs to whichever link is cheapest to break — not to the highest-scoring finding in it. Breaking one link defeats the chain, and it is often the least severe member.

Ownership

Every item needs a name, and it must be a person rather than a team. A list of fixes with no owners is a list of fixes that will not happen — which is why the owner column is the thing worth checking in a report's remediation roadmap.

Expect the owners to be spread wider than you assume. Application findings go to the product team; infrastructure findings to whoever runs the platform; identity findings frequently to a third group; and third-party components to whoever manages that relationship. A remediation plan assigned entirely to "the security team" is one that has not been read.

Track it where the work already lives

Findings tracked in a spreadsheet parallel to the real backlog get done at the rate spreadsheets get read. Put them in the same system as everything else, with enough of the finding carried across that whoever picks it up in six weeks can act: the identifier, the reproduction steps, the affected component, and the remediation guidance.

Carry the finding identifier through into the ticket. It is what makes the retest possible without a reconciliation exercise.

Set dates against severity, then keep them

Agree target windows by severity band before starting — critical within days, high within weeks, medium within a quarter, low at convenience or accepted. Exact numbers matter less than having them written down, because the point is that a missed date becomes visible rather than becoming the new normal.

If a date is going to be missed, that is a decision to record, not a silence to maintain.

Finishing

Remediation ends with verification, not with the last ticket closing. A fix nobody independently confirmed is a fix in the same sense that an untested deployment is a working one — and the artefact an auditor asks for is the closure document, not the original report. That process is set out in retest, closure and the evidence that ends an engagement.