Orca Cve Blast Radius logo

Orca Cve Blast Radius

Organization
orcasecurity
orca-cve-blast-radius

CVE blast-radius analysis — given a single CVE-ID, find every affected asset across all accounts, rank by real exposure (internet-facing, attack-path participant, crown jewel) instead of static CVSS. Use when user asks about a specific CVE's environmental impact (e.g., "blast radius of CVE-2024-1234", "where are we affected by Log4Shell", "which assets have CVE-2021-44228", "who is exposed to CVE-XXXX").

Overview

Publisherorcasecurity
Repositoryorca-skills
Skill nameorca-cve-blast-radius
Stars
56
Forks
14
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by orcasecurity on GitHub. Read the source before you install it.

Installation

Install the Orca Cve Blast Radius AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/orcasecurity/orca-skills/tree/main/skills/orca-cve-blast-radius
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/orcasecurity/orca-skills.git /tmp/orca-skills
mkdir -p .claude/skills
cp -r /tmp/orca-skills/skills/orca-cve-blast-radius .claude/skills/orca-cve-blast-radius
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Orca Cve Blast Radius in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Orca Cve Blast Radius on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Orca Cve Blast Radius is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Orca CVE Blast-Radius Skill

Answers the question: "This CVE just dropped — which of our assets are actually at risk, ranked by real exposure?"

Static CVSS doesn't tell you which workloads matter. This skill takes a CVE-ID, finds every affected asset across all accounts, and ranks them by runtime exposure context — internet-facing, attack-path participation, crown jewel status, and existing related alerts.

Usage

/orca-cve-blast-radius CVE-2021-44228
/orca-cve-blast-radius CVE-2024-1234
/orca-cve-blast-radius CVE-2024-3094 prod

Or natural language:

  • "blast radius of CVE-2024-1234"
  • "where are we affected by Log4Shell?"
  • "which assets have CVE-2021-44228?"
  • "show me CVE-2024-3094 across all accounts"

Processing Logic

Step 1: Parse the CVE-ID

Extract a single CVE-ID in CVE-YYYY-NNNNN form. If the user provided a name (e.g. "Log4Shell", "xz backdoor", "Spring4Shell"), map to the canonical CVE-ID first using a discovery_search query like "<name> CVE". If the mapping is ambiguous, list candidates and ask the user to pick.

Optional scope arg: prod, staging, account <id>. Default: all accounts.

Step 2: Find every affected asset (parallel)

Run all three queries in parallel:

Query 1: Asset hits by CVE-ID

discovery_search:
  search_phrase: "assets with <CVE-ID>"
  limit: 50

Query 2: Critical exposure hits

discovery_search:
  search_phrase: "internet facing assets with <CVE-ID>"
  limit: 50

Query 3: Active alert hits (catches assets where Orca raised the CVE as an alert)

discovery_search:
  search_phrase: "open alerts for <CVE-ID>"
  limit: 50

De-duplicate by asset_id / group_unique_id after the three queries return. The intersection (assets in all three sets) is the highest priority.

Step 3: Enrich top affected assets (parallel)

Take the top 10 affected assets (prioritized by: internet-facing first → then by alert count → then by asset name). Per asset, in parallel:

get_asset_by_id:
  asset_id: <UUID>
get_asset_related_alerts_summary:
  asset_id: <UUID>
get_asset_related_attack_paths_summary:
  asset_id: <UUID>
get_asset_crown_jewel_info:
  group_unique_id: <group_unique_id>

This yields the runtime context: exposure, attack-path participation, crown jewel, and existing alerts.

Step 4: Rank by real exposure

Score each affected asset on a 0-100 scale:

SignalPoints
Internet-facing+30
Participates in ≥1 attack path+25
Crown jewel+20
≥1 other CRITICAL alert+15
Prod environment tag+10

Ranking tiers (after scoring):

  • CRITICAL (≥ 60): internet-facing + attack path + (crown jewel OR other critical alerts). Patch now.
  • HIGH (40–59): internet-facing OR attack-path participant. Patch this sprint.
  • MEDIUM (20–39): vulnerable but not exposed externally. Patch in normal cycle.
  • LOW (< 20): vulnerable but isolated. Patch on next dependency bump.

Step 5: Map attack paths through the CVE

For CRITICAL-tier assets, traverse attack paths starting from the CVE-vulnerable asset:

get_asset_related_attack_paths:
  asset_id: <UUID>

Show the kill chain: CVE → exploit → pivot → crown jewel.

Proactive Remediation Behavior

CRITICAL: Never leave the user with just data. After the report:

  1. Suggest action — "Patch <asset> first because it's internet-facing + participates in 2 attack paths."
  2. Offer remediation format — "I can generate the patch manifest. Choose format: terraform | helm | ansible | cli | dockerfile-patch | k8s-patch | instructions."
  3. For CRITICAL-tier assets, auto-suggest opening an incident ticket and snoozing other noise.

When user picks a format:

  • Generate the upgrade or mitigation config
  • Write to cve-fix-<cve-id>-<asset>.<ext>
  • Include the verification command
  • Suggest the next asset to patch

Output Format

Layer 1: Blast Radius Dashboard

═══════════════════════════════════════════════════════════════════
CVE BLAST RADIUS — <CVE-ID>
<CVE name if known, e.g. Log4Shell> | <CVSS score> | <fix available?>
<date> | <scope>
═══════════════════════════════════════════════════════════════════

VERDICT: <one-liner — "12 affected, 3 critical, patch within 24h">

┌─────────────────────────────────────────────────────────────────┐
│  TOTAL AFFECTED        <N> assets                               │
│  CRITICAL TIER         <N> (internet-facing + reachable target) │
│  HIGH TIER             <N> (exposed OR attack-path participant) │
│  MEDIUM TIER           <N> (vulnerable, internal-only)          │
│  LOW TIER              <N> (isolated)                           │
│  CROWN JEWELS AFFECTED <N>                                      │
│  ATTACK PATHS THROUGH  <N>                                      │
│  ACCOUNTS AFFECTED     <N>                                      │
└─────────────────────────────────────────────────────────────────┘

CRITICAL TIER (patch within 24h):
  [1] <asset> (<type>) in <account> — score <X>
      Internet-facing: YES | Attack paths: <N> | Crown jewel: YES/NO
      Other criticals: <N> | Env: prod
      Exploit path: <CVE> → <pivot> → <target>

  [2] <asset> — score <X>
      ...

RECOMMENDED ACTION:
  Patch <top asset> first — <reason>.
  I can generate the patch right now.

  What format? terraform | helm | ansible | cli | dockerfile-patch |
  k8s-patch | instructions | pulumi

═══════════════════════════════════════════════════════════════════
Or drill down: critical | high | medium | low | attack-paths |
by-account | full
═══════════════════════════════════════════════════════════════════

Layer 2: Drill-Downs

"critical" — Critical-tier assets
───────────────────────────────────────────────────────────────────
CRITICAL TIER — Patch Within 24h
───────────────────────────────────────────────────────────────────

  [!] <asset> (<type>) in <account>
      Score: <X>/100
      Internet-facing: YES | Public IP: <ip>
      Attack paths: <N> kill chains through this asset
      Crown jewel: YES (data classification: <X>)
      Other critical alerts: <N>
      Related Orca alert: <alert-id> — <title>
      Fix: upgrade <package> to <safe-version>
      OR mitigation: <workaround if known>

  [!] <asset> — ...

───────────────────────────────────────────────────────────────────
"attack-paths" — Kill chains through the CVE
───────────────────────────────────────────────────────────────────
ATTACK PATHS — CVE as Entry Point
───────────────────────────────────────────────────────────────────

  [1] Score: <X.X>
      Entry: <vulnerable asset> (public IP: <ip>)
        → Exploit: <CVE-ID> (<exploit availability>)
        → Pivot: <internal asset>
        → Target: <crown jewel> (<why it matters>)
      Break chain: patch <package> on <entry asset>

  [2] Score: <X.X>
      Entry: <vulnerable asset>
        → ...

TOTAL PATHS THROUGH <CVE-ID>: <N>
Crown jewels reachable: <N>

───────────────────────────────────────────────────────────────────
"by-account" — Affected count by account
───────────────────────────────────────────────────────────────────
AFFECTED ASSETS BY ACCOUNT
───────────────────────────────────────────────────────────────────

  Account              Total   Critical   High   Medium   Low
  ──────────────────────────────────────────────────────────────
  <account-1>          <N>     <N>        <N>    <N>      <N>
  <account-2>          <N>     <N>        <N>    <N>      <N>
  ...

WORST ACCOUNT: <account> — <why>

───────────────────────────────────────────────────────────────────
"high" / "medium" / "low"

Same table-per-tier layout as "critical" with reduced enrichment.

"full"

Show all sections in order.

Edge Cases

CVE Not Found in Any Asset

✅ No assets affected by <CVE-ID> in the monitored environment.

Caveats:
  • Verify Orca scanner coverage with /orca-account-health
  • The CVE may be too new for Orca's vulnerability database — check the
    Orca UI → Vulnerabilities for the latest sync time
  • Some vulnerabilities only surface after a workload runs — recently
    deployed assets may not yet be flagged

Invalid or Unrecognized CVE-ID

⚠ <input> doesn't match a known CVE.

Did you mean one of these?
  • CVE-YYYY-XXXXX — <title>
  • CVE-YYYY-XXXXX — <title>

Or provide the canonical ID in CVE-YYYY-NNNNN form.

Massive Blast Radius (> 50 hits per query)

⚠ <CVE-ID> affects more than 50 assets — discovery_search is capped at 50.

Showing top 50 by exposure score. For the full inventory:
  Open the app_url in the discovery_search response, OR
  Re-run with a narrower scope: /orca-cve-blast-radius <CVE> account <id>

CVE Affects Multiple Packages

<CVE-ID> spans multiple packages: <name1>, <name2>.
Showing combined exposure. Drill into a single package with:
  /orca-supply-chain-exposure <package>

MCP Tools Used

Primary Tools

ToolPurposeParameter
discovery_searchFind assets affected by a CVEsearch_phrase (NL), limit
get_asset_by_idAsset metadata + env tagasset_id (UUID)
get_asset_related_alerts_summaryExisting alerts (incl. the CVE alert itself)asset_id (UUID)
get_asset_related_attack_paths_summaryAttack-path participation countasset_id (UUID)
get_asset_crown_jewel_infoCrown jewel statusgroup_unique_id

Secondary Tools

ToolPurposeWhen
get_asset_related_attack_pathsFull kill-chain detail"attack-paths" drill-down
get_attack_pathSingle attack-path expansionWhen drilling into one chain
get_alertFull detail on the CVE alertWhen user wants alert text/IoC
get_alerts_with_similar_alert_typeOther CVE alerts of same typePattern-matching across assets

Parameter Notes

  • The three discovery_search queries (asset-with-CVE, internet-facing-with-CVE, open-alerts-for-CVE) hit different indexes — running all three is what catches assets that one query alone misses.
  • discovery_search is capped at 50 results — surface app_url when truncated and recommend account-level scoping.
  • get_asset_related_attack_paths_summary returns counts only; use get_asset_related_attack_paths for full kill-chain.
  • CVE name → CVE-ID mapping (e.g. "Log4Shell" → CVE-2021-44228) is not built into the MCP; a discovery_search for "<name> CVE" is the usable workaround.

Implementation Notes

  1. The three-query fan-out in Step 2 is non-negotiable — each surfaces different assets. De-duplicate after, not before.
  2. Real exposure beats CVSS. A CVSS 10.0 on an isolated dev box matters less than a CVSS 7.5 on an internet-facing crown jewel. The scoring rubric in Step 4 enforces this.
  3. Cap enrichment to top 10 assets — full per-asset enrichment is 4 tool calls × N assets. With many affected assets, this balloons fast.
  4. CRITICAL tier should always have an exploit path shown, even if it's a one-hop ("CVE → asset → exposed port"). The kill chain framing is what makes the urgency clear.
  5. Link to other skills: suggest /orca-impact-analysis for fix consequences, /orca-alert-triage <alert-id> for the related Orca CVE alert, /orca-supply-chain-exposure <package> for the package-level view, /orca-asset-profile <asset> for full asset context.
  6. The CVE may not be in Orca's DB yet for very fresh disclosures — surface the caveat in the "Not Found" edge case and don't claim a clean bill of health prematurely.

Frequently asked questions

What does the Orca Cve Blast Radius AI skill do?

CVE blast-radius analysis — given a single CVE-ID, find every affected asset across all accounts, rank by real exposure (internet-facing, attack-path participant, crown jewel) instead of static CVSS. Use when user asks about a specific CVE's environmental impact (e.g., "blast radius of CVE-2024-1234", "where are we affected by Log4Shell", "which assets have CVE-2021-44228", "who is exposed to CVE-XXXX").

Why use Orca Cve Blast Radius on TypingMind?

Because you install it once and use it with any model. Orca Cve Blast Radius is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Orca Cve Blast Radius in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/orcasecurity/orca-skills/tree/main/skills/orca-cve-blast-radius. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Orca Cve Blast Radius?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Orca Cve Blast Radius?

As many as you like. As long as a model supports skills, you can use Orca Cve Blast Radius with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Orca Cve Blast Radius AI skill free?

Yes. It is published on GitHub by orcasecurity under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇