Find your Reachable Risk. Know what to fix and when.

CVE prioritization for engineering teams using Claude Code, Codex, or similar AI coding agents. Reachable Risk scores every alert against what’s actually being exploited and what reaches exploitable paths in your application, so you know which few you should fix, and by when.

See how it works

Two repos triaged overnight, with evidence. In one, 3 alerts fixed by an agent’s PR.  In the other, all 65 deferred, each with its reasoning.

Start your 7-day free trial

The Problem with CVE Prioritization Today

NIST stopped independently assessing CVE severity in April 2026. CVE volume is expected to double this year. Your team is left with severity scores that no longer mean anything, and a backlog that grows faster than you can triage it.

Everything looks equally urgent. Nothing gets fixed fast enough.

Reachable Risk: Reachability Analysis Inside Your AI Coding Agent

Reachable Risk plugs directly into the AI coding agent your engineers already use (Claude Code, Codex, similar) and gives it two signals that actually predict exploitability, plus the reachability check the agent is uniquely positioned to do.

  • VulnCheck KEV: known exploited vulnerabilities (real-world attack evidence).
  • FIRST EPSS: exploit prediction scoring (probability of exploitation in the next 30 days).
  • Reachability: your coding agent calculates each CVE’s reachability in your code using k9’s expert-tuned rubric.

k9 turns those into a defensible risk score that knows the difference between a CVE that’s burning down your house and a CVE that isn’t reachable from a single live code path in your app (even if it’s Internet-famous).

Private by design. k9 never sees your source code. Your agent needs only read access to your repo, and sends k9 only the finding and its reachability result for scoring.

Use in minutes, not weeks. No new dashboard to learn.

What You Get

  • MCP server: connects directly to Claude Code, Codex, Cursor, Opencode, and other agents via the Model Context Protocol.
  • VulnCheck KEV lookup: real-world exploitation evidence per CVE.
  • FIRST EPSS scoring: 30-day exploit probability per CVE.
  • score_risk MCP tool: agent-callable scoring that combines KEV + EPSS + reachability into a defensible risk score for each alert, in every context where its code runs.
  • Risk-based scoring: k9 scores each CVE using the reachability your agent found in your code, the current threat of exploitability, and policy floors. So the verdict reflects your exposure, not the CVE's reputation.
  • NIST SP 800-30 risk assessment: every finding scored in the qualitative and semi-quantitative forms your security team and auditors already recognize, reported as inherent, residual, and the risk the analysis retired, so you can show how much exposure the scoring removed.
  • Risk scoring rubric: a defensible methodology your auditors and security experts will accept, shipped as an MCP prompt resource so the agent applies it directly.
  • gather_risk_context MCP tool: walks your codebase with your agent and drafts the risk context, so the file that decides your verdicts gets written once and reviewed, not invented from a blank page.
  • Shareable triage report: a written rationale for every defer decision, ready to hand to security, an auditor, or a customer security review.

What You Do, What We Do: CVE Prioritization Without the Hidden Phase

We doYou do
Maintain KEV + EPSS feedsFeed CVE findings from Dependabot, Wiz, Tenable, etc
Score every CVE, in minutesAdd the MCP server to your agent (3-line config)
Gather your risk context with you, and give the agent the tool to do itSay where your code runs and who can reach it, once, in .k9security/risk-context.yaml
Publish the scoring rubricApply the prioritized fixes
Update the prompt guidance as feeds changeDecide which deferred CVEs to revisit, and when

No surprise work. No hidden integration phase.

Why This, Why Now

The AI-generated vulnerability tsunami is already here. In May 2026, the maintainer of dnsmasq (software running on hundreds of millions of devices) disclosed 6 CVEs in a single day, all discovered by AI-based security research tools. His words:

There has been something of a revolution in AI-based security research. The tsunami of AI-generated bug reports shows no signs of stopping.

CVSS severity can’t keep up. Manual triage can’t keep up. The only scalable answer is exploit-probability scoring built into the tools your engineers already use.

The Triage Report: Reachability and Exploitability Risk Scoring, Alert by Alert

Every run produces a report you can hand to Security or an auditor. On this repository the answer was that nothing needed fixing that week, and the report’s job was to prove it. On the next repository, three alerts were worth an agent’s pull request. Here’s the executive summary from the 2026-07-14 run (real repository, 65 open Dependabot alerts, k9 risk-scoring rubric 2026.05.18-v6):

65 alerts → 0 fix today, 0 to schedule, 65 to defer. A Critical and 26 Highs among them, none reachable and exploitable. No CVE in CISA KEV or VulnCheck KEV. No EPSS percentile above the 0.99 urgency floor (highest: 0.70). Reachability landed on code_not_loaded for 25, no_attacker_controlled_input for 27, and unreachable_from_entrypoint for 13, with zero undetermined.

Every defer carries its reasoning. Here’s one:

CVE-2026-32871: FastMCP OpenAPI provider, SSRF + path traversal

  • GHSA severity: Critical (CVSS 10.0). Would normally be a drop-everything fire.
  • KEV status: Not listed. No real-world exploitation evidence.
  • EPSS percentile: 0.59 (well below the 0.99 urgency floor).
  • Reachability: code_not_loaded. The vulnerable FastMCP OpenAPI server code is never loaded; the app is an MCP client and never instantiates a FastMCP server.
  • Verdict: DEFER. Bundle into the next routine dependency upgrade (fixed in 3.2.0).
  • Forward-watch trigger: any new feature that imports fastmcp.server.openapi or wires a FastMCP server.

This is the false positive engineers hate: a Critical-severity alert for a vulnerability in a capability the app doesn’t even use. The report gives your team the evidence to defer it without guesswork, and the trigger that flips the verdict if the situation changes, in a form you can forward to whoever asks.

Four complete reports are published for projects you can check yourself: Redash, where 29 of 272 alerts needed attention, Spring PetClinic microservices, where 691 Java alerts produced 109 to schedule, JupyterLab, and NetBox. Each includes the risk-context.yaml that produced it. See all four samples.

Not Every Alert Gets a Clean Answer

Some alerts come back REVIEW. The evidence is not sufficient to defer them, and we would rather say that than guess. A REVIEW asserts nothing and is never dismissed on your behalf. It is the one verdict that asks for a person.

Policy floors work the same way. A finding your agent determined is unreachable, sitting on a public asset that matters, still schedules, and the verdict names the floor that raised it. If you want a tool that gives you cover to ignore your backlog, this is not it.

One Alert. Two Correct Verdicts. One Metered Unit.

The same vulnerable dependency often runs in more than one place, with genuinely different risk in each. A single verdict has to understate one context or over-flag the other. Reachable Risk scores the alert in every context where its code executes: runtime, tests, deployment IaC, etc. Here’s a real advisory from k9’s own backlog, declared once, running in two places:

Execution contextAssetVerdictResidual risk (0-100)
runtimetier_1, public, productionSCHEDULE50
component-iactier_2, internal, devDEFER20

One alert. Two correct verdicts. One metered unit. Your agent supplies all the relevant execution contexts from a risk-context file you author, and the alert is scored for one (low) price.

For Engineers Inside Large Organizations

The vulnerability list Security sends you is not wrong. It is unarguable. Wiz, Tenable, Veracode and Dependabot do what they were bought to do: find every vulnerable package. What none of them tells you is which of those vulnerabilities are reachable in your code. So about 90% of your remediation effort is wasted.

Reachable Risk runs after your scanner and returns a defensible action plan, scored against real exploitation evidence and the reachability your agent found in your code. Your plan runs on evidence, not just authority.

Every run reports in the language your security team and auditors already read: inherent risk, residual risk after the analysis, and the risk the analysis retired, in NIST SP 800-30 form. Deadlines come from your organization’s own vulnerability management policy. Not a CVE severity set by a third-party.

Start your 7-day free trial

No card required to start. Prove it on your own backlog first, then hand your manager an evidence-based plan for fixing your actually-vulnerable dependencies.

Pricing

7-day free trial, then $10/month.

  • 100 alerts included per month.
  • $0.25 per alert above plan.
  • Pay on a personal card. No procurement cycle.
  • Cancel anytime. No card required to start the trial.

One alert, scored in every context where it executes, metered once. Scoring an alert in three contexts costs the same as scoring it in one.

If it doesn’t prove its worth in 7 days, walk away. No charge, nothing to cancel.

Running this for a whole team, or wiring it into CI?

Reachable Risk for Teams. $150/month.

  • 1,500 alerts included per month.
  • $0.15 per alert above plan.
  • Same scoring, same rubric, same reports.

The Teams plan is coming soon. Start on the free trial, then let us know that the Teams plan is the best fit for you and we’ll convert you.

Score Your Real Backlog: MCP CVE Prioritization in Three Lines of Config

Add the MCP server to Claude Code, Codex, or a compatible agent. Three lines of config. Write your risk context once, with your agent doing most of the typing, then score your real backlog the same afternoon. If it proves its worth in 7 days, continue for $10/month. If not, walk away.

Start your 7-day free trial

{
  "mcpServers": {
    "k9": {
          "type": "http",
          "url": "https://mcp.k9security.io/mcp"
        }
    }
}

Built for engineers who want their AI coding agent to triage real risk, not CVSS noise.