Vulnerability management: CVEs, CVSS scores, scanning, prioritising and patching
Most successful attacks use known weaknesses that had a fix available. Vulnerability management is the steady process of finding those weaknesses and fixing the most dangerous first.
Key terms
| Term | Meaning |
|---|---|
| Vulnerability | A weakness (a bug, a misconfiguration, a default password) |
| Exploit | A method or code that takes advantage of it |
| Patch | A fix from the vendor |
| Zero-day | A vulnerability attackers use before a fix exists |
| CVE | A unique ID for a publicly known vulnerability, e.g. CVE-2021-44228 (Log4Shell) |
| CVSS | A 0–10 severity score |
CVSS severity ratings
| Score | Rating |
|---|---|
| 0.0 | None |
| 0.1–3.9 | Low |
| 4.0–6.9 | Medium |
| 7.0–8.9 | High |
| 9.0–10.0 | Critical |
CVSS describes how severe a flaw is in general (can it be exploited over the network? is login needed? what is the impact?). CVSS version 4.0 was released in 2023; many databases still show 3.1 scores too.
Severity isn't the whole story
Smart prioritisation adds context:
- Is it being exploited in the wild? The US CISA Known Exploited Vulnerabilities (KEV) catalogue lists flaws attackers actively use.
- How likely is exploitation soon? EPSS (Exploit Prediction Scoring System) estimates the probability.
- How exposed is the asset? Internet-facing beats internal-only.
- How important is the asset? The payment server matters more than a test VM.
The vulnerability management cycle
- Asset inventory: you can't protect what you don't know about (servers, laptops, cloud, websites, plugins).
- Scan: authenticated scans find more than unauthenticated ones.
- Prioritise: by severity, exploitation, exposure and asset value.
- Remediate: patch, upgrade, change configuration, or apply a temporary mitigation.
- Verify: rescan to confirm the fix.
- Report: track numbers and time to fix.
Tools
| Type | Examples |
|---|---|
| Network and host scanners | Greenbone/OpenVAS (open source), Tenable Nessus, Qualys, Rapid7 |
| Web app scanners | OWASP ZAP, Burp Suite |
| Dependencies and containers | Dependabot, Trivy, Grype, npm audit, pip-audit |
| Cloud configuration | Prowler, ScoutSuite, cloud providers' security centres |
| WordPress | WPScan, plus keeping plugins and themes updated |
Lab: prioritise a list of findings (run it)
findings = [
{"cve": "CVE-A", "asset": "Public website (WordPress plugin)", "cvss": 9.8, "known_exploited": True, "internet": True, "critical_asset": True},
{"cve": "CVE-B", "asset": "Internal test VM", "cvss": 9.1, "known_exploited": False, "internet": False, "critical_asset": False},
{"cve": "CVE-C", "asset": "VPN gateway", "cvss": 7.5, "known_exploited": True, "internet": True, "critical_asset": True},
{"cve": "CVE-D", "asset": "Accounts PC (PDF reader)", "cvss": 7.8, "known_exploited": False, "internet": False, "critical_asset": True},
{"cve": "CVE-E", "asset": "Office printer", "cvss": 5.3, "known_exploited": False, "internet": False, "critical_asset": False},
]
def priority(f):
score = f["cvss"]
if f["known_exploited"]: score += 5
if f["internet"]: score += 3
if f["critical_asset"]: score += 2
return score
for f in sorted(findings, key=priority, reverse=True):
print(f'{priority(f):5.1f} {f["cve"]} CVSS {f["cvss"]:<4} {f["asset"]}')The VPN gateway (CVSS 7.5) jumps above the internal test VM (CVSS 9.1) because it is internet-facing and actively exploited. The weights here are a simple teaching example; organisations agree their own rules.
Patch management good practice
- Turn on automatic updates for operating systems, browsers and apps wherever practical.
- Set target fix times, e.g. actively exploited or critical internet-facing: days; high: within 2–4 weeks; others: the regular monthly cycle.
- Test important patches first, but don't let testing become an excuse for months of delay.
- Replace end-of-life software (no more security updates), such as old Windows versions or abandoned plugins.
- Can't patch yet? Mitigate: disable the feature, restrict access, add a WAF rule, monitor closely.
Responsible disclosure
If you find a vulnerability in someone else's product while using it normally:
- Don't exploit it further or access other people's data.
- Report it privately to the vendor (look for
security.txt, a security email, or a bug bounty programme). - Give them reasonable time to fix it before any public discussion.
Think about it: A scan of a small business shows 120 findings. The owner asks you to fix the "highest CVSS score first." What would you check before agreeing?Show answer
Which findings are actively exploited (CISA KEV), which are on internet-facing systems (website, VPN, router, email) and which assets are most important (payments, customer data). A medium-severity flaw on an exposed, exploited VPN can be more urgent than a critical one on an isolated test machine. Then fix in that risk order and rescan to verify.
Summary
- CVEs identify known vulnerabilities; CVSS rates severity from 0 to 10.
- Prioritise by severity plus active exploitation (KEV), likelihood (EPSS), exposure and asset value.
- Cycle: inventory, scan, prioritise, remediate, verify, report.
- Scan only with permission; disclose responsibly.
Check yourself
What is the unique ID for a publicly known vulnerability called? (acronym)
Show answer
cve
What CVSS rating is a score of 9.5? (one word)
Show answer
critical
A vulnerability exploited before any fix exists is a ___ (one word, with a hyphen)
Show answer
zero-day