Vulnerability management
By the end of this module you will be able to:
- Calculate a CVSS 4.0 Base Score and explain the Threat and Environmental metric groups
- Use EPSS scores alongside CVSS to produce a risk-based prioritisation decision
- Apply the CISA KEV catalogue to identify actively exploited vulnerabilities requiring immediate action
- Design a patch management programme with defined SLAs per severity tier
- Choose between patching, compensating controls and documented risk acceptance, and report programme health with metrics that measure risk rather than activity
Equifax 2017: patch available, alert sent, 147 million records exfiltrated
In March 2017, the Apache Software Foundation released a patch for CVE-2017-5638, a critical remote code execution vulnerability in the Apache Struts web framework. Equifax, one of the three largest consumer credit bureaux in the United States, was running a vulnerable version of Struts in its online dispute portal. The patch was available. Equifax's vulnerability scanning tool had identified the vulnerability. The alert had been sent. The patch was not applied.
In May 2017, attackers exploited CVE-2017-5638 to gain access to Equifax's network and spent 76 days exfiltrating the personal data of 147 million US citizens, including Social Security numbers, dates of birth, and home addresses. The CVE carried a CVSS v3 Base Score of 10.0: network-exploitable, no authentication required, no user interaction, high impact on confidentiality, integrity, and availability. Equifax paid $700 million in settlements and fines.
The breach was not a discovery failure; it was a prioritisation and escalation failure. Discovery occurred; the process that should have converted a CRITICAL alert into a mandatory remediation timeline with accountability did not exist. This module builds that process piece by piece: first the language for severity, then the data for likelihood, then the lifecycle that turns an alert into a closed finding, and finally the discipline of running the whole programme against a live production estate.
The patch existed for two months and the scanner had already flagged the flaw. What was actually missing?
1. CVSS 4.0: scoring vulnerability severity
The Equifax story is, underneath everything, a story about a queue. Every security team runs one: scanners, penetration tests and researcher reports feed findings in faster than engineers can fix them, so something has to decide what is fixed first. The shared language that decision starts from is (Common Vulnerability Scoring System), published by FIRST and at version 4.0 since November 2023. A CVSS score expresses how severe a vulnerability would be if exploited, from 0.0 to 10.0, with the NVD qualitative labels: None (0.0), Low (0.1-3.9), Medium (4.0-6.9), High (7.0-8.9), Critical (9.0-10.0).
Version 4.0 exists partly to correct how its predecessor was misused. Under v3.1 the Base Score, a measure of intrinsic severity, was routinely read as a measure of risk, and whole patching programmes were sorted by it. The 4.0 specification answers with explicit nomenclature: a bare base score is labelled CVSS-B; enriched with threat data it becomes CVSS-BT; enriched with deployment context it becomes CVSS-BE or CVSS-BTE. The labelling is itself the lesson. A score that ignores whether exploitation is happening, and where the affected system sits, is declared incomplete by its own name.
CVSS 4.0 defines four metric groups:
- Base metrics (intrinsic characteristics): Attack Vector (Network/Adjacent/Local/Physical), Attack Complexity (Low/High), Privileges Required (None/Low/High), User Interaction (None/Passive/Active), and Confidentiality/Integrity/Availability impact on both the vulnerable system and subsequent systems.
- Threat metrics (replaces Temporal in v3.1): Exploit Maturity (Attacked/Proof-of-Concept/Unreported/Not Defined). A vulnerability with confirmed active exploitation (Attacked) scores higher than one with only theoretical exploitability.
- Environmental metrics: allow organisations to adjust scores based on deployment context. A vulnerability in an internet-facing system storing PII scores higher than the same vulnerability in an air-gapped internal tool.
- Supplemental metrics (informational, do not affect score): Automatable, Recovery, Value Density, Vulnerability Response Effort, Provider Urgency.
Worked against the opening story: CVE-2017-5638 received a CVSS v3 Base Score of 10.0, because Privileges Required was None, User Interaction was None, Attack Vector was Network, Attack Complexity was Low, and impact was High across all three CIA dimensions. The Environmental picture made it worse rather than better: the affected system was internet-facing and held personal data on millions of consumers, so both the Base and adjusted scores sat at the maximum.
What no base score can say is whether anyone is exploiting the vulnerability this week. CVE-2017-5638 earned its 10.0 on the day it was published, but Equifax's scanner will have carried hundreds of other high-scoring findings beside it. Telling the one under live attack apart from the many that merely look dangerous is a question about likelihood, not severity, and it needs different data. Two signals supply it.
2. EPSS and CISA KEV: prioritisation beyond CVSS
The predictive signal is (Exploit Prediction Scoring System), maintained by FIRST and at version 4 since March 2025. It is a machine learning model that estimates the probability a specific CVE will be exploited in the wild within the next 30 days, drawing on a large feature set: CVE characteristics, CVSS scores, public exploit availability, social media discussion, and dark web activity. EPSS scores range from 0% to 100%.
CVSS measures severity; EPSS measures likelihood. They are complements, not substitutes. The two come apart in practice: a vulnerability can carry a high base score and still attract almost no exploitation activity, while a medium-scoring one under active attack carries a high EPSS probability. Read the current EPSS score for a specific CVE from the EPSS data itself rather than inferring it from severity. Combining the two produces a four-quadrant prioritisation:
- CVSS Critical/High + EPSS above 10%: emergency queue, immediate patch.
- CVSS Critical/High + EPSS below 10%: standard SLA remediation.
- CVSS Medium/Low + EPSS above 10%: expedited review; active exploitation warrants escalation.
- CVSS Medium/Low + EPSS below 10%: defer or risk-accept with documented owner sign-off.
Prediction is one thing; confirmation is stronger. The CISA (Known Exploited Vulnerabilities) catalogue, introduced November 2021, lists CVEs with confirmed evidence-based active exploitation. BOD 26-04, published in June 2026, superseded the previous KEV directive and now governs risk-based security update prioritisation for US federal civilian agencies. Commercial organisations should treat KEV as a confirmed exploitation signal and set deadlines by exposure, asset criticality, exploitability, compensating controls, and operational risk. Log4Shell (CVE-2021-44228) remains the reference case for why a KEV entry should override ordinary backlog order.
That gives a triage rule a team can defend line by line: KEV first, then EPSS-weighted, CVSS as severity context only. A finding on the KEV catalogue is being exploited now, so it leads the queue whatever its base score. Among everything else, EPSS orders the work by the probability of exploitation, and CVSS tells you how serious it would be if that probability is realised. Queuing by CVSS alone fails for a concrete reason: a meaningful share of exploited CVEs carry only medium base scores, so sorting by severity buries genuinely dangerous, actively exploited findings beneath theoretically severe ones that nobody is touching.
Reading several signals together, rather than trusting one, stopped being optional during 2024. The US National Vulnerability Database fell badly behind on enriching newly published CVEs with the metadata that scoring depends on, and the backlog ran through 2024 and into 2025. Teams that had built their whole prioritisation on that single feed found it stalling underneath them. The lesson mature programmes took was to treat KEV, EPSS and CVSS as independent inputs, so a gap in any one of them degrades the decision rather than halting it.
A score is not always a decision. When the same EPSS or CVSS number could justify either patching tonight or waiting a fortnight, it has described the vulnerability without settling your response to it. (Stakeholder-Specific Vulnerability Categorization), developed at Carnegie Mellon University and used by CISA, is the structured alternative: instead of a number it walks the triager down a decision tree of plain questions, is the vulnerability being exploited, is the exposure automatable, what is the mission impact, and lands on an explicit action such as Track, Attend or Act. Where a queue has to be auditable and defensible to a regulator, a decision tree that records why each finding was actioned is easier to stand behind than a threshold on a score. The figure below assembles all three signals into the working prioritisation grid, and the knowledge check that follows asks you to run a five-CVE queue through it.
Your authenticated scan returns five findings. CVE-A: CVSS 9.8, EPSS 4%, not in KEV. CVE-B: CVSS 6.1, EPSS 92%, listed in CISA KEV. CVE-C: CVSS 8.1, EPSS 38%, not in KEV. CVE-D: CVSS 7.5, EPSS 1%, not in KEV. CVE-E: CVSS 5.3, EPSS 70%, listed in CISA KEV. Capacity lets you remediate them one at a time. Which order clears the most exploitation risk first, and how do you defend it?
“This Directive consolidates and clarifies vulnerability remediation guidelines for federal agencies addressing cybersecurity vulnerabilities.”
CISA Binding Operational Directive 26-04: Prioritizing Security Updates Based on Risk
3. The vulnerability lifecycle and patch management SLAs
Scoring answers the ordering question, and only that. It does not close a single finding. Closure is the work of a lifecycle: a repeatable path every finding follows from the moment a scanner first sees it to the moment a re-scan proves it gone. Six phases cover the full journey:
- Discovery: authenticated network scans (Tenable, Qualys, Rapid7), SBOM-driven CVE matching against the software inventory you met in the previous module, SAST findings, and continuous monitoring.
- Triage: apply CVSS/EPSS/KEV scoring; confirm the finding is not a false positive; identify the asset owner and exposure surface.
- Prioritisation: assign a severity tier and SLA using the risk-based matrix.
- Remediation: patch, mitigate (WAF rule, configuration change), or accept risk with documented sign-off from a named owner.
- Verification: re-scan after remediation using authenticated scanning to confirm the finding is genuinely closed.
- Post-closure: update SBOM and asset inventory; track mean time to remediate (MTTR) by severity tier against defined SLAs.
Two details decide whether discovery is real or theatrical. The first is the asset inventory: a scanner only scores what it is pointed at, so every server nobody registered is a finding nobody will ever triage. The second is credentials. An unauthenticated scan views a system from outside and guesses versions from network banners; an authenticated scan logs in and reads the installed packages directly, which finds far more and misreports far less. Equifax illustrates how quietly this layer fails: the appliance that decrypted and inspected the company's outbound traffic had been running with an expired certificate, so for months it inspected nothing. When the certificate was finally renewed in late July 2017, the suspicious transfers became visible almost at once and the incident was declared. A blind sensor does not report that it is blind; only deliberate coverage checks reveal it.
The SLA is where the lifecycle acquires teeth. Recommended patch management SLAs: Critical with a KEV entry or EPSS above 50%: 48 hours for internet-facing systems, 7 days for internal; Critical without active exploitation: 14 days; High: 30 days; Medium: 90 days; Low: 180 days or risk-accept. All deferred patches beyond their SLA require documented risk acceptance signed by a named owner with an expiry date. An SLA without a named owner and an escalation path is a hope, not a control; the Equifax alert dissolved in exactly that gap between notification and obligation.
The loop in the figure below closes back on itself because new CVEs never stop arriving. Running it against a live production estate raises the questions the final section takes up: what to do when the patch is itself a risk, what to do when a patch cannot be applied at all, and how to measure whether the programme is winning.
Common misconception
“CVSS Base Scores reflect current exploitation risk, so monitoring CVSS scores alone is sufficient for prioritisation.”
CVSS Base Scores are set at the time of CVE publication and do not change when new exploit code is released, when the vulnerability is added to the CISA KEV catalogue, or when a ransomware group begins actively exploiting it. A CVE published in 2021 with a CVSS 7.5 score may have an EPSS score of 80% today if exploit code was recently released. Review KEV additions daily; re-triage any open findings that appear on the catalogue even if they were previously de-prioritised on CVSS alone.
Common misconception
“Running a monthly vulnerability scan and producing a report constitutes a vulnerability management programme.”
Scanning produces a list of findings; a programme converts those findings into prioritised remediation work with named owners, SLA deadlines, escalation paths, and tracking to verified closure. Organisations that scan without a downstream process accumulate backlogs of thousands of unresolved findings. The Equifax 2017 breach occurred despite active scanning: the process that should have converted the CRITICAL alert into mandatory remediation with accountability did not exist. The metric that distinguishes a programme from a scan is mean time to remediate (MTTR) by severity tier, measured against defined SLAs.
A vulnerability management team has 2,400 open CVEs: 180 CVSS Critical (9.0+), 600 High, and the remainder Medium or Low. Capacity allows approximately 50 remediations per week. The team wants to reduce risk from active exploitation most efficiently. Which prioritisation approach yields the most risk reduction per unit of effort?
Log4Shell (CVE-2021-44228, CVSS 10.0) was published on 9 December 2021 and added to the CISA KEV catalogue the same day. Your authenticated scan identifies three instances of a vulnerable Log4j version in internal developer tooling: a local CI build server, a test results dashboard, and a code coverage report generator. None are internet-facing. Your internet-facing production systems have already been patched. How should you classify and schedule remediation of the internal instances?
Equifax had vulnerability scanning enabled in March 2017. The scan tool identified CVE-2017-5638. The alert was generated. The system remained unpatched when attackers exploited it two months later. Which phase of the vulnerability lifecycle failed, and what process control would most directly have prevented the breach?
4. Running the programme: rings, exceptions and honest metrics
Patch advice is easy to give and expensive to follow, because a patch is a change to a live system and changes break things. The organisations that had not applied Microsoft's MS17-010 fix by May 2017 were not all idle; many were weighing the risk of disrupting systems they depended on. WannaCry then encrypted their estates two months after the fix shipped, which is the permanent case for urgency. The case for care arrived on 19 July 2024, when a faulty CrowdStrike content update, pushed to every machine at once, crashed around 8.5 million Windows devices and halted airlines, hospitals and broadcasters that had suffered no attack at all. A deployment mechanism with no staging turned one bad file into a global outage.
Mature programmes hold both lessons at once by deploying in rings. A patch lands first on a small canary group chosen to represent the wider estate, then on progressively larger rings as it proves stable, with rollback rehearsed before the first ring rather than improvised after the last. The ring schedule is not fixed: it compresses with the risk. A routine Medium finding can take a fortnight to cross the rings; a KEV entry on an internet-facing service crosses them in hours, because the 48-hour SLA from the previous section allows nothing slower. The schedule flexes, the sequence does not.
When a patch cannot be applied inside its SLA at all, the programme needs named alternatives rather than silence. The first is mitigation: a compensating control that blocks the exploit path while the vulnerability remains, such as a web application firewall rule matching the exploit pattern, network segmentation that removes the route to the vulnerable service, or disabling the vulnerable feature outright. Mitigation buys time; it does not close the finding, which stays open and tracked. The second is formal risk acceptance: a named owner signs that the organisation will carry this specific risk, within its stated , until an expiry date forces the decision to be retaken. The third, often forgotten, is retirement: some systems are cheaper to decommission than to keep defending. What no programme can afford is the unnamed fourth option, deferral by silence, where a finding ages in a backlog with no owner and no decision. That is precisely the state CVE-2017-5638 sat in at Equifax between March and May 2017.
Finally, the programme has to prove it is working, and the obvious number lies. The raw count of open findings rises whenever discovery improves, so a team that deploys better authenticated scanning looks worse on the day it starts seeing clearly. The metrics that reflect risk are ratios and clocks: mean time to remediate by severity tier, measured against the published SLA; the percentage of findings closed inside their SLA; scan coverage, meaning the share of the asset inventory actually scanned with credentials in the last cycle; and the age of the oldest open Critical and of every open KEV finding. Reported as trends, these let a board ask the question that matters: not how many vulnerabilities exist, but how quickly the ones attackers are using get closed.
Sometimes the race is lost anyway. A vulnerability is exploited on day two of a seven-day SLA, and the queue stops being the story. Turning a missed patch into a detected and contained incident, rather than a 76-day exfiltration, is the work of detection and incident response, which the next module takes up. Before that, the challenge and practice tools below let you run the full lifecycle yourself.
A vulnerability has a CVSS 4.0 base score of 6.8 (Medium) but appears in the CISA Known Exploited Vulnerabilities catalogue with an EPSS score of 0.94. How should it be prioritised?
Try it in the workspace
A studio tool turns this module into something you can build and export.
Core distinctions
- CVSS 4.0 measures intrinsic severity across four metric groups: Base (inherent characteristics), Threat (exploitation maturity), Environmental (deployment context), and Supplemental (informational only). The Threat metric group, new in v4.0, explicitly captures confirmed exploitation.
- EPSS predicts exploitation probability within 30 days using machine learning. Combined with CVSS, it produces a risk-based prioritisation that narrows the active remediation queue substantially while still covering the vulnerabilities that are actually being exploited.
- The CISA KEV catalogue confirms active exploitation in the wild. Any KEV entry warrants immediate re-triage regardless of when the CVE was originally scored. BOD 26-04 is the current federal directive for risk-based security update prioritisation.
- A vulnerability lifecycle runs from discovery through triage, prioritisation, remediation, verification, and post-closure tracking. The Equifax breach was a prioritisation and escalation failure: discovery occurred; the mandatory remediation process did not.
- Patch management SLAs must be documented, assigned to named owners, and tracked. Without enforcement, SLAs become aspirational targets that erode under delivery pressure.
- Patching is a change to production: deploy in rings, compress the ring schedule when KEV or EPSS raises the stakes, and replace silent deferral with mitigation, documented risk acceptance or retirement. Measure the programme with MTTR by tier, SLA attainment and scan coverage, not raw finding counts.
Standards and sources cited in this module
CVSS v4.0 Specification (FIRST, 2023)
Base, Threat, Environmental, and Supplemental metric groups with scoring formula and worked examples.
CISA KEV Catalogue and BOD 26-04
Actively exploited vulnerability catalogue and current CISA risk-based federal remediation directive for exploited and high-risk vulnerabilities.
EPSS Model Documentation (FIRST)
Exploit Prediction Scoring System: model features, scoring methodology, and Cyentia Institute research on prioritisation effectiveness.
NIST SP 800-40r4: Guide to Enterprise Patch Management Planning
Patch management policy, SLA definition, and vulnerability lifecycle guidance.
FTC vs Equifax Consent Order and Senate Judiciary Committee Testimony (2017-2018)
Vulnerability management lifecycle failure case study: patch available, alert sent, remediation process missing.