MITRE ATT&CK Vulnerability Prioritization

Using MITRE ATT&CK for Vulnerability Prioritization: A Practical Playbook

MITRE ATT&CK isn't just for detection engineering. Mapped to your CVE inventory, it tells you which vulnerabilities enable the attack techniques your threat actors actually use, and which ones you can safely deprioritize.

CVEasy AI Research Team · February 28, 2026 · 10 min read
MITRE ATT&CK technique mapping

ATT&CK technique coverage gaps in your detection stack identify which CVEs enable undetected attack paths, the highest-priority remediation targets.

Most security teams use MITRE ATT&CK for one thing: building detection rules. The framework is phenomenally good at that. But the same knowledge base that describes what attackers do after gaining access also describes how they gain access in the first place, and that's where it intersects directly with your vulnerability management program.

When you map CVEs to ATT&CK techniques, you stop asking "is this CVE severe?" and start asking "does this CVE enable an attack technique that our threat actors use, on an asset we can't detect?" That's a fundamentally more useful question, and it produces a fundamentally more defensible prioritization decision.

The gap most teams have: Your SIEM has ATT&CK detection coverage. Your vulnerability scanner has CVE severity scores. But almost no teams have a system that answers: "Which of our unpatched CVEs enable the ATT&CK techniques we have the weakest detection coverage for?" That's the highest-value query in your entire security posture.

How ATT&CK Tactics Map to CVE Attack Surface

The ATT&CK framework organizes techniques under 14 tactics representing phases of the adversary lifecycle. For vulnerability management, five tactics are most directly relevant:

The key insight is that Initial Access CVEs deserve asymmetric urgency. They're the entry point. Every downstream tactic (Execution, Persistence, Privilege Escalation, Lateral Movement) becomes possible only after Initial Access succeeds. Patch the entry point and you eliminate entire attack chains.

T1190: Exploit Public-Facing Application: Deep Dive

T1190 is the ATT&CK technique that directly maps to the CVEs most commonly exploited in the wild. It covers the exploitation of software weaknesses in internet-facing applications to gain unauthorized access. According to MITRE's own data, T1190 is one of the most frequently observed Initial Access techniques across all threat actor groups tracked in the enterprise matrix.

What falls under T1190 in practice:

T1190 by the numbers: CISA's 2024 Top Routinely Exploited Vulnerabilities report listed 15 CVEs. 13 of the 15 map directly to T1190. If you want a single ATT&CK-based filter for your vulnerability prioritization, "does this CVE enable T1190?" eliminates most of your noise and captures most of your actual risk.

Identifying T1190-Relevant CVEs in Your Environment

Not every CVE in your scanner output is a T1190 candidate. The filter criteria:

  1. Attack vector = Network in CVSS (eliminates local/physical access requirements)
  2. No authentication required (privileges required = None in CVSS)
  3. Asset is internet-facing (requires accurate asset inventory with exposure tagging)
  4. Vulnerability class = RCE, auth bypass, or arbitrary file read/write

In NVD's CPE data, you can query for CVEs affecting specific products that your internet-facing assets run. Cross-reference with CVSS vector string AV:N/AC:L/PR:N (Network, Low complexity, No privileges) to find the worst candidates.

Building a Vulnerability-to-Technique Mapping

The MITRE ATT&CK knowledge base is available as a STIX 2.1 JSON feed at https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json. This feed includes explicit CVE references in technique objects, not comprehensively, but enough to bootstrap a mapping.

Here's the approach for building your own mapping pipeline:

Step 1: Pull ATT&CK STIX bundle
 GET https://raw.githubusercontent.com/mitre/cti/master/
    enterprise-attack/enterprise-attack.json

Step 2: Extract CVE references from technique external_references
 Filter objects where type == "attack-pattern"
 Extract external_references where source_name == "cve"

Step 3: Cross-reference your scanned CVE inventory
 Match your scanner output CVE IDs against the ATT&CK CVE reference list
 Flag matched CVEs with associated technique ID(s)

Step 4: Enrich unmatched CVEs by keyword
 For CVEs not in ATT&CK directly, classify by:
  - CWE ID → technique family mapping (see table below)
  - Product category (VPN, Exchange, Web Server → T1190)
  - CVSS attack vector + privileges required

CWE to ATT&CK Technique Mapping Reference

CWE Root Cause → Primary ATT&CK Technique Mapping
CWE Description Primary ATT&CK Technique Tactic
CWE-78 OS Command Injection T1059 Command Interpreter Execution
CWE-89 SQL Injection T1190 Public-Facing Application Initial Access
CWE-119 Buffer Overflow T1068 Exploitation for Priv. Esc. Privilege Escalation
CWE-287 Improper Authentication T1078 Valid Accounts / T1190 Initial Access
CWE-502 Insecure Deserialization T1059 / T1190 Initial Access / Execution
CWE-918 SSRF T1090 Proxy / T1190 Initial Access
CWE-22 Path Traversal T1083 File and Directory Discovery Discovery

Scoring CVEs by ATT&CK Coverage

Once you've mapped CVEs to ATT&CK techniques, you can score them by the quality of your detection coverage for that technique. This is the key insight that makes ATT&CK-based prioritization powerful: a CVE enabling a technique you can't detect is worth more urgency than a CVE enabling a well-detected technique.

The scoring formula:

ATT&CK Priority Score = Base Severity × Technique Weight × (1 - Detection Coverage)

Where:
 Base Severity = EPSS × 100 + (CVSS / 10 × 20)  [0-120 scale]
 Technique Weight = {
  TA0001 Initial Access:    1.5 (entry point multiplier)
  TA0002 Execution:      1.3
  TA0004 Privilege Escalation: 1.2
  TA0008 Lateral Movement:   1.4
  All others:         1.0
 }
 Detection Coverage = your SIEM coverage for that technique [0.0 - 1.0]
 Example: T1190 with 40% detection coverage → (1 - 0.4) = 0.6 multiplier

A CVE with EPSS 0.6, CVSS 8.5, mapped to T1190 (Initial Access), and your org has only 40% detection coverage for T1190:

Base Severity = (0.6 × 100) + (8.5 / 10 × 20) = 60 + 17 = 77
Technique Weight = 1.5 (Initial Access)
Detection Coverage modifier = 1 - 0.4 = 0.6

ATT&CK Priority Score = 77 × 1.5 × 0.6 = 69.3

Compare: same CVE, T1083 (Discovery), 90% coverage:
 77 × 1.0 × (1 - 0.9) = 7.7  ← dramatically lower priority
Detection coverage as a patch priority signal: This approach directly connects your blue team's detection work with your vulnerability team's patching decisions. When your detection engineers improve coverage for a technique, it automatically reduces the urgency of CVEs that enable that technique, creating a feedback loop between the two disciplines that most orgs lack entirely.

Practical Implementation: Getting Started in 5 Steps

  1. Export your current CVE inventory with CVSS vector strings (specifically AV, PR fields) and CWE IDs. Most scanners export this in CSV or XML.
  2. Download the ATT&CK STIX bundle and extract technique-to-CVE mappings using a JSON parser. The MITRE CTI GitHub repository has the full dataset. Alternatively, use the ATT&CK Workbench API.
  3. Build your detection coverage baseline. Query your SIEM for active detection rules by ATT&CK technique ID. Tools like ATT&CK Navigator let you visualize and export coverage as JSON.
  4. Run the scoring formula across your CVE inventory. Even a spreadsheet-based implementation produces useful results in the first pass.
  5. Validate your top-20 results against CISA KEV and EPSS. If your ATT&CK score surfaces CVEs that are also in KEV, your mapping is working correctly. If it surfaces CVEs with EPSS < 0.01, revisit your detection coverage data.

Real-World Application: Hardening Against Specific Threat Groups

ATT&CK's threat group profiles (Groups section, e.g., G0007 for APT28, G0016 for APT41) document the specific techniques each group uses. This enables targeted prioritization: if you're a healthcare organization primarily concerned about Lazarus Group (G0032), you can extract their technique profile and filter your CVE inventory specifically for vulnerabilities that enable Lazarus-used techniques.

# Pseudo-code: filter CVEs relevant to a specific threat group
threat_group = "G0032" # Lazarus Group
lazarus_techniques = get_techniques_for_group(attack_stix, threat_group)
# Returns: [T1190, T1133, T1059.003, T1486, T1489, ...]

prioritized_cves = [
 cve for cve in your_cve_inventory
 if any(t in lazarus_techniques for t in cve.attack_techniques)
   and cve.asset_is_internet_facing
]

This approach is used by threat-informed defense programs at large enterprises. It's also how government agencies translate specific threat intelligence ("APT X is targeting your sector") into concrete patch priority decisions, rather than panic-patching everything. They patch the specific vulnerability classes that the named group exploits.

ATT&CK + CVEasy AI: CVEasy AI's TRIS™ scoring incorporates ATT&CK technique classification for CVEs where MITRE has published explicit mappings. The system flags CVEs enabling Initial Access and Execution techniques with automatic urgency escalation, and displays the associated technique IDs alongside remediation guidance. See it in action →

Ready to take control of your vulnerabilities?

CVEasy AI runs locally on your hardware. Seven layers of risk intelligence. AI remediation in seconds.

Get Started Free Learn About BASzy AI

Related Articles