Back to Blog
I Asked My AI Agent About axios. It Knew Everything in 0.03ms.

I Asked My AI Agent About axios. It Knew Everything in 0.03ms.

April 24, 20265 min read

I pointed an AI agent at a single npm package — axios, the HTTP client installed 55 million times per week — and asked: how risky is this?

In under a millisecond, it came back with 13 known vulnerabilities correlated across CVE databases, EPSS exploitation scores, CISA KEV, public exploits, weakness classifications, and ATT&CK mappings.

No API keys. No network calls. No rate limits.

One local graph. Sub-millisecond.

Here's what happened.


The Setup

VulnGraph is a vulnerability intelligence graph that pre-joins 9 authoritative sources into a single memory-mapped file. It exposes 16 tools via the Model Context Protocol (MCP) — the standard for giving AI agents access to tools.

I connected it to an agent and started asking questions about axios.


13 CVEs. 7 High Severity. 0.14ms.

The first call — lookup_package — returned the full vulnerability profile:

CVE

Severity

CVSS

EPSS

PoCs

CVE-2025-27152

HIGH

7.7

0.07%

3

CVE-2025-58754

HIGH

7.5

0.11%

CVE-2026-25639

HIGH

7.5

0.05%

CVE-2021-3749

HIGH

7.5

8.26%

1

CVE-2024-39338

MEDIUM

4.0

2.88%

CVE-2023-45857

0.13%

3

CVE-2019-10742

13.52%

That's not just CVE IDs. Every row has a CVSS base score, an EPSS exploitation probability (likelihood of exploitation in the next 30 days), and proof-of-concept counts from GitHub and ExploitDB. All pre-joined. All instant.


Is axios@1.6.0 Safe?

{
  "package": "axios",
  "version": "1.6.0",
  "vulnerable": true,
  "cve_count": 13,
  "highest_severity": "HIGH"
}

Enter fullscreen mode Exit fullscreen mode

0.019ms. The agent now knows not to suggest this version in any code it writes.


What Should You Fix First?

This is where it gets interesting. VulnGraph doesn't just list CVEs — it triages them.

The assess_risk tool scored the top axios CVEs using a weighted model: CVSS severity, EPSS probability, exploit maturity, and exposure context.

Priority

CVE

Risk Score

Level

Fix Within

1

CVE-2021-3749

5.62

MEDIUM

7 days

2

CVE-2025-27152

5.60

MEDIUM

7 days

3

CVE-2026-25639

3.75

LOW

30 days

4

CVE-2024-39338

2.04

LOW

30 days

5

CVE-2023-45857

1.75

LOW

30 days

Notice something? CVE-2021-3749 outranks CVE-2025-27152 despite a lower CVSS score. Why? Its EPSS is 8.26% (92nd percentile) — it's far more likely to be exploited in the wild.

CVSS alone would have gotten this wrong. Most vulnerability scanners would have gotten this wrong.


Deep Dive: SSRF in axios (CVE-2025-27152)

I asked the agent to go deeper on CVE-2025-27152. The get_exploit_intel tool mapped the full threat context in 0.034ms:

  • Severity: HIGH (CVSS 7.7)
  • Exploit Maturity: POC — 3 public proof-of-concept exploits on GitHub
  • Weakness: CWE-918 (Server-Side Request Forgery)
  • KEV Listed: No (not yet seen in the wild)
  • EPSS: 0.07% — low current probability

Following the CWE-918 thread, VulnGraph revealed that SSRF is classified across 1,401 CVEs in the graph. The most dangerous? CVE-2021-40438 — Apache mod_proxy SSRF, EPSS 94.4%, CISA KEV listed, CVSS 9.0.

One CVE pulled a thread that unraveled an entire weakness class across the graph.


The Graph Traversal

This is the core advantage. The get_related tool traced all connections from CVE-2025-27152 in a single traversal:

CVE-2025-27152
  |-- affects --> npm:axios
  |-- affects --> cpe:axios:axios
  |-- has_poc --> GitHub-PoC:CVE-2025-27152:0
  |-- has_poc --> GitHub-PoC:CVE-2025-27152:1
  |-- has_poc --> GitHub-PoC:CVE-2025-27152:2
  +-- classified_as --> CWE-918 (SSRF)

Enter fullscreen mode Exit fullscreen mode

It's not 6 separate API calls stitched together. It's a single hop across pre-joined data. 0.05ms.


This Was Just axios

The demo exercised 7 of VulnGraph's 16 MCP tools. The full toolset:

Category

Tools

Lookup

lookup_cve lookup_package lookup_weakness

Search

search_vulnerabilities search_packages

Analysis

analyze_dependencies assess_risk check_version

Exploit Intel

get_exploit_intel trending_threats

Graph

map_attack_surface get_related

Timeline

get_timeline

Batch

scan_sbom scan_lockfile

Meta

graph_stats


467,939 Nodes. 9 Sources. One File.

VulnGraph pre-joins data from 9 authoritative sources:

Source

Records

What It Provides

CVE List V5

342,360

Every published vulnerability

EPSS

324,894

Exploitation probability — what's likely to be attacked

CISA KEV

1,557

Confirmed actively-exploited vulnerabilities

OSV

43,606

Ecosystem advisories with affected version ranges

ExploitDB

30,409

Published exploits

PoC-in-GitHub

14,826

Proof-of-concept code

MITRE ATT&CK

18,224

Techniques, threat actors, malware

Nuclei Templates

3,999

Automated scanning templates

CWE

745

Weakness taxonomy

The graph opens in ~100 microseconds via mmap. Point lookups run in <1ms. There are no network calls, no cold starts, no rate limits.

Every response includes a data_freshness envelope showing exactly when each source was last synced — because stale vulnerability data is worse than no data.


Why MCP?

The Model Context Protocol is the emerging standard for giving AI agents access to tools. VulnGraph implements it natively — 16 tools over JSON-RPC, available via HTTP or stdio.

Any MCP-compatible agent can discover these tools automatically. The agent calls tools/list, sees 16 vulnerability intelligence tools with full input schemas, and starts querying — no docs, no integration code.

{
  "method": "tools/call",
  "params": {
    "name": "check_version",
    "arguments": {
      "ecosystem": "npm",
      "package": "axios",
      "version": "1.7.4"
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

0.019ms later, the agent knows whether the dependency it's about to recommend is safe.

What this enables:

  • Code review agents that flag vulnerable dependencies before merge
  • Security copilots that triage by real exploit intelligence, not just CVSS
  • Incident response agents that map CVE to package to technique to threat actor
  • CI/CD gates that block deploys with actively-exploited vulnerabilities

Try It

vulngraph.tools — the full 467K-node graph running in your browser via WebAssembly. Search any CVE, explore relationships, see the data freshness live.


VulnGraph is a Rust graph engine backed by memory-mapped binary files. 467,939 nodes. 602,467 edges. 9 sources. Sub-millisecond. Built for agents.


Source: Dev.to

Related Posts