**CRITICAL**: Use for ALL CVE discovery and listing. DO NOT call get_cves directly. Use when: "show critical CVEs", "CVEs on hostname X", "remediatable vulnerabilities", "impact of CVE-X", risk assessment. NOT for remediation (use `/remediation`). System-level: FIRST reply = pagination prompt (Step -1). Parsing: references/01-cve-response-parser.py.
70
62%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./rh-sre/skills/cve-impact/SKILL.mdThis skill helps SREs analyze CVE vulnerabilities to understand their impact on systems before creating remediation playbooks.
🚨 SYSTEM-LEVEL (CVEs on device X): Your first reply to the user MUST be the pagination prompt (Step -1). Do NOT call inventory__find_host_by_name or vulnerability__get_system_cves until the user responds. Do not validate MCP or resolve hostname first—HITL comes first.
Integration with Remediation Skill: The /remediation skill orchestrates this skill as part of its Step 1 (Impact Analysis) workflow for complex remediation scenarios. For simple standalone impact analysis, you can invoke this skill directly.
When invoked by another skill (e.g. remediation), use the Skill tool—do NOT use "Task Output" with the skill name as task ID. That causes "No task found with ID: cve-impact". See skill-invocation.md.
Required MCP Servers: lightspeed-mcp (setup guide)
Required MCP Tools:
get_cves (from lightspeed-mcp) - List/query CVEs by severityget_cve (from lightspeed-mcp) - Get specific CVE detailsget_cve_systems (from lightspeed-mcp) - Find systems affected by CVEsget_system_cves (from lightspeed-mcp) - List CVEs affecting a specific system (uses system_uuid only)Required Environment Variables:
LIGHTSPEED_CLIENT_ID - Red Hat Lightspeed service account client IDLIGHTSPEED_CLIENT_SECRET - Red Hat Lightspeed service account secretCRITICAL: Before executing any operations, execute the /mcp-lightspeed-validator skill to verify MCP server availability.
Validation freshness: Can skip if already validated in this session. See Validation Freshness Policy.
How to invoke: Execute the /mcp-lightspeed-validator skill
Handle validation result:
Use this skill directly when you need:
Use the /remediation skill when you need:
To invoke: Execute the /remediation skill
How they work together: The /remediation skill orchestrates this skill as part of its comprehensive workflow, combining impact analysis with context gathering, playbook generation, and execution guidance.
If the user asked for CVEs on a device (e.g. "CVEs on ip-172-31-32-201", "remediatable CVEs on hostname X", "most critical CVEs on system Y"):
Your first response to the user MUST be the pagination prompt below. Do not run Step 0, do not call inventory__find_host_by_name, do not call vulnerability__get_system_cves until the user responds.
Reply to the user with:
To fetch remediatable CVEs on this system, I will:
- Paginate through vulnerability__get_system_cves (limit=100 per page)
- Filter each page for advisory_available === true
- Systems often have 1,700+ CVEs (~18 API calls)
⚠️ First page only often returns 0 remediatable CVEs—they may be on any page. For "remediatable" queries, recommend "all pages".
Options:
- **First page only**: Fetch 100 CVEs, filter for remediatable (may be 0)
- **All pages**: Fetch until no more results (recommended for remediatable)
- **N pages**: Fetch up to N pages (e.g. "3 pages" = up to 300 CVEs scanned)
How would you like to proceed? (first page / all pages / N pages)Wait for the user to respond. Only after they reply may you proceed to Step 0.
If account-level (e.g. "CVEs on my account"): Skip this step, go to Step 0.
Action: Execute the /mcp-lightspeed-validator skill
Note: Can skip if validation was performed earlier in this session and succeeded. See Validation Freshness Policy.
How to invoke: Execute the /mcp-lightspeed-validator skill
Handle validation result:
Select the appropriate flow based on user request.
| Flow | When to Use | Flow File |
|---|---|---|
| Account-level | devices=all (account-wide CVEs) | 01-account-cves.md |
| System-level (all CVEs) | devices=selected, remediation=does not matter | 02-system-all-cves.md |
| System-level (remediatable) | devices=selected, remediation=available | 03-system-remediatable-cves.md |
Variable mapping:
For system-level flows (02 or 03): Your first action MUST be to display the HITL prompt below and wait for user confirmation. Do NOT resolve hostname, do NOT call any MCP tool, until the user responds.
Order of operations:
vulnerability__get_system_cvesFor remediatable CVEs on system (flow 03):
To fetch remediatable CVEs on this system, I will:
- Paginate through vulnerability__get_system_cves (limit=100 per page)
- Filter each page for advisory_available === true
- Systems often have 1,700+ CVEs (~18 API calls)
⚠️ First page only often returns 0 remediatable CVEs—they may be on any page. For "remediatable" queries, recommend "all pages".
Options:
- **First page only**: Fetch 100 CVEs, filter for remediatable (may be 0)
- **All pages**: Fetch until no more results (recommended for remediatable)
- **N pages**: Fetch up to N pages (e.g. "3 pages" = up to 300 CVEs scanned)
How would you like to proceed? (first page / all pages / N pages)For all CVEs on system (flow 02):
This system may have many CVEs. I will paginate through vulnerability__get_system_cves (limit=100 per page).
Options:
- **First page only**: Fetch 100 CVEs, then stop (quick overview)
- **All pages**: Fetch until no more results (systems with 1,700+ CVEs may require ~18 API calls)
- **N pages**: Fetch up to N pages (e.g. "3 pages" = 300 CVEs)
How would you like to proceed? (first page / all pages / N pages)Handle response: Wait for user reply. Only after user confirms (and specifies strategy) may you proceed to resolve hostname and call vulnerability__get_system_cves. If user says "no" or cancels, stop execution.
Anti-pattern: Do NOT call vulnerability__get_system_cves or inventory__find_host_by_name before completing HITL. Calling with only the first page (limit=100, no offset loop) misses remediatable CVEs on later pages.
Action: Read and follow the selected flow file. For system-level, HITL is Step 1 (before all other steps).
CRITICAL: Document consultation MUST happen BEFORE tool invocation.
Document Consultation (REQUIRED - Execute FIRST):
MCP Tool: get_cve or vulnerability__get_cve (from lightspeed-mcp)
Parameters:
cve_id: Exact CVE identifier from user query (format: "CVE-YYYY-NNNNN")
"CVE-2024-1234"include_details: true (retrieve complete metadata including CVSS vector, affected packages, references)Expected Output: Comprehensive CVE metadata including CVSS score, severity, attack vector, affected packages, remediation status
Retrieve comprehensive CVE metadata:
CVE ID: CVE-YYYY-NNNNN
CVSS Score: X.X (Base score from NIST)
Severity: Critical/High/Medium/Low
Attack Vector: Network/Adjacent/Local/Physical
Attack Complexity: Low/High
Privileges Required: None/Low/High
User Interaction: None/Required
Scope: Unchanged/Changed
Confidentiality Impact: None/Low/High
Integrity Impact: None/Low/High
Availability Impact: None/Low/High
Description: [CVE description from NVD/Red Hat]
Affected Packages: [List of packages and versions]
Published Date: YYYY-MM-DD
Last Modified: YYYY-MM-DDCRITICAL: Document consultation MUST happen BEFORE tool invocation.
Document Consultation (REQUIRED - Execute FIRST):
MCP Tool: get_cve_systems or vulnerability__get_cve_systems (from lightspeed-mcp)
Parameters:
cve_id: Exact CVE identifier (format: "CVE-YYYY-NNNNN")
"CVE-2024-1234"include_patched: false (exclude already-patched systems to focus on vulnerable systems)Expected Output: List of affected systems with UUID, hostname, IP address, package version, vulnerability status
Identify which systems in your infrastructure are affected by the CVE:
Affected Systems:
- system-uuid-1 (hostname: web-server-01, IP: 10.0.1.10)
- Package: httpd-2.4.37-1.el8
- Status: Vulnerable
- system-uuid-2 (hostname: web-server-02, IP: 10.0.1.11)
- Package: httpd-2.4.37-1.el8
- Status: Vulnerable
Total Affected Systems: NCRITICAL: Document consultation MUST happen BEFORE classification logic.
Document Consultation (REQUIRED - Execute FIRST):
Classify affected systems by environment and criticality based on tags from Red Hat Lightspeed:
System Classification:
- Production systems: N (highest priority)
- Staging systems: M (test before prod)
- Development systems: K (lowest priority)
- Bare metal: X systems
- Virtual machines: Y systemsCRITICAL: Document consultation MUST happen BEFORE risk assessment.
Document Consultation (REQUIRED - Execute FIRST):
Provide a risk assessment based on:
Output Format:
Risk Assessment Summary
━━━━━━━━━━━━━━━━━━━━━━━
Overall Risk Level: Critical/High/Medium/Low
Factors:
✓ CVSS Score: X.X (Severity: High)
✓ Affected Systems: N systems
✓ Environment: Production (Critical)
✓ Attack Vector: Network (Remote exploitable)
✓ Exploitability: Proof-of-concept exists
✓ User Interaction: None required
Recommendation: Immediate remediation recommended
Priority: P0 (within 24 hours) / P1 (within 7 days) / P2 (within 30 days)Analyze business impact (service, confidentiality/integrity/availability, compliance).
Check if automated playbook or manual steps are available.
Read references/03-output-templates.md for report format. Read references/04-examples.md for query-type examples and remediation integration.
Read references/05-error-handling.md for CVE not found, no affected systems, and Lightspeed tool failures.
| File | Use When |
|---|---|
| 01-cve-response-parser.py | Parse/filter MCP vulnerability responses |
| 02-cve-parsing-guide.md | Parser invocation, filter options |
| 03-output-templates.md | Report format |
| 04-examples.md | Query-type examples |
| 05-error-handling.md | CVE not found, no systems, Lightspeed failures |
| lightspeed-mcp-tool-failures.md | explain_cves dnf_modules workaround |
REQUIRED: Use the skill's parser script for all vulnerability response parsing. Do NOT use jq, inline Python, or other ad-hoc JSON parsing.
Do NOT generate inline Python to aggregate multiple page files—the parser accepts multiple file paths and produces aggregated reports.
Read references/02-cve-parsing-guide.md for:
references/01-cve-response-parser.pypython3 rh-sre/skills/cve-impact/references/01-cve-response-parser.py <response.json>python3 .../01-cve-response-parser.py page1.json page2.json page3.json ... (merges, dedupes, aggregated report)FILTER_REMEDIATABLE=1, FILTER_IMPACT=Critical,ImportantOUTPUT=report, SYSTEM_NAME=hostname for aggregated multi-page reportsSave each MCP tool result to a file, then run the parser with one or more paths. Use parser output for summary tables and reports.
lightspeed-mcp - Red Hat Lightspeed platform accessget_cves (from lightspeed-mcp) - List/query CVEs by severity and filters
get_cve (from lightspeed-mcp) - Get specific CVE details
get_cve_systems (from lightspeed-mcp) - Find systems affected by CVE
get_system_cves (from lightspeed-mcp) - List CVEs affecting a specific system
system_uuid, NOT system_idmcp-lightspeed-validator - PREREQUISITE - Validates Lightspeed MCP server before operations
cve-validation - Validate CVE IDs before impact analysis
system-context - Get detailed system configuration after identifying affected systems
fleet-inventory - Get comprehensive fleet information before CVE analysis
This skill primarily uses:
get_cve (vulnerability toolset) - Get details about a specific CVEget_cve_systems (vulnerability toolset) - Get list of systems affected by a CVEget_cves (vulnerability toolset) - Get list of all CVEs affecting the account (optional)get_system_cves (vulnerability toolset) - Get list of CVEs affecting a specific system
system_uuid (required), NOT system_idimpact, limit, or severity filters - filter client-sideinventory__find_host_by_name (inventory toolset) - Resolve hostname to system UUID before get_system_cvesget_host_details (inventory toolset) - Get detailed system information (optional)All tools are provided by the lightspeed-mcp MCP server configured in .mcp.json.
600eabe
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.