나는 내 AI 에이전트에게 axios에 대해 물었다. 그것은 0.03ms 안에 모든 것을 알았다.
Source: Dev.to
위에 제공된 텍스트만으로는 번역할 내용이 없습니다. 번역을 원하는 본문을 알려주시면 한국어로 번역해 드리겠습니다.
설정
VulnGraph은 9개의 권위 있는 소스를 하나의 메모리‑맵 파일로 사전 결합한 취약점 인텔리전스 그래프입니다. 이 그래프는 Model Context Protocol (MCP) — AI 에이전트가 도구에 접근할 수 있게 하는 새로운 표준 — 를 통해 16개의 도구를 노출합니다.
저는 이를 에이전트에 연결하고 axios에 관한 질문을 시작했습니다.
13 CVEs. 7 High Severity. 0.14 ms.
첫 번째 호출 — lookup_package — 은 전체 취약점 프로파일을 반환했습니다:
| CVE | 심각도 | CVSS | EPSS | PoC |
|---|---|---|---|---|
| CVE‑2025‑27152 | 높음 | 7.7 | 0.07 % | 3 |
| CVE‑2025‑58754 | 높음 | 7.5 | 0.11 % | — |
| CVE‑2026‑25639 | 높음 | 7.5 | 0.05 % | — |
| CVE‑2021‑3749 | 높음 | 7.5 | 8.26 % | 1 |
| CVE‑2024‑39338 | 중간 | 4.0 | 2.88 % | — |
| CVE‑2023‑45857 | — | — | 0.13 % | 3 |
| CVE‑2019‑10742 | — | — | 13.52 % | — |
각 행에는 CVSS 기본 점수, EPSS 활용 확률(향후 30 일 내 활용 가능성), 그리고 GitHub 및 ExploitDB에서 수집된 PoC(Proof‑of‑Concept) 개수가 포함됩니다. 모두 사전 결합된 상태이며, 즉시 제공됩니다.
axios@1.6.0은 안전한가요?
{
"package": "axios",
"version": "1.6.0",
"vulnerable": true,
"cve_count": 13,
"highest_severity": "HIGH"
}0.019 ms. 이제 에이전트는 이 버전을 코드에 제안하지 않아야 함을 알고 있습니다.
무엇을 먼저 고쳐야 할까요?
VulnGraph는 단순히 CVE를 나열하는 것이 아니라 우선순위를 매깁니다. assess_risk 도구는 CVSS 심각도, EPSS 확률, 익스플로잇 성숙도, 노출 컨텍스트를 고려한 가중 모델을 사용해 상위 axios CVE를 점수화했습니다.
| 우선순위 | CVE | 위험 점수 | 수준 | 해결 기한 |
|---|---|---|---|---|
| 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 |
뭔가 눈에 띄나요? CVE‑2021‑3749는 CVE‑2025‑27152보다 낮은 CVSS 점수에도 불구하고 더 높은 순위를 차지합니다. EPSS가 8.26 %(92번째 백분위)로, 실제 공격에 이용될 가능성이 훨씬 높습니다. CVSS만으로는 이를 놓쳤을 것이며, 대부분의 취약점 스캐너도 이를 놓쳤을 것입니다.
Deep Dive: SSRF in axios (CVE‑2025‑27152)
나는 에이전트에게 CVE‑2025‑27152에 대해 더 깊이 파고들라고 요청했다. get_exploit_intel 도구가 0.034 ms 만에 전체 위협 컨텍스트를 매핑했다:
- Severity: HIGH (CVSS 7.7)
- Exploit Maturity: POC — GitHub에 공개된 3개의 증명 개념(exploit)
- Weakness: CWE‑918 (Server‑Side Request Forgery)
- KEV Listed: No (아직 실제 사례는 없음)
- EPSS: 0.07 % — 현재 낮은 발생 확률
CWE‑918 스레드를 따라가자, VulnGraph는 SSRF가 그래프 내 1,401 CVEs에 걸쳐 분류되어 있음을 보여주었다. 가장 위험한 것은? CVE‑2021‑40438 — Apache mod_proxy SSRF, EPSS 94.4 %, CISA KEV 등재, CVSS 9.0.
한 CVE가 그래프 전체에 걸친 약점 클래스를 풀어내는 실마리를 제공했다.
그래프 탐색
get_related 도구는 CVE‑2025‑27152에서 모든 연결을 단일 탐색으로 추적했습니다:
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)이는 여섯 개의 별도 API 호출을 이어붙인 것이 아니라, 사전 결합된 데이터를 통한 단일 홉입니다. 0.05 ms.
이것은 단지 axios였습니다
데모에서는 VulnGraph의 16개 MCP 도구 중 7개를 사용했습니다. 전체 도구 세트는 다음과 같습니다:
| 카테고리 | 도구 |
|---|---|
| 조회 | lookup_cve, lookup_package, lookup_weakness |
| 검색 | search_vulnerabilities, search_packages |
| 분석 | analyze_dependencies, assess_risk, check_version |
| 익스플로잇 인텔 | get_exploit_intel, trending_threats |
| 그래프 | map_attack_surface, get_related |
| 타임라인 | get_timeline |
| 배치 | scan_sbom, scan_lockfile |
| 메타 | graph_stats |
467,939 노드. 9 소스. 한 파일.
VulnGraph는 9개의 권위 있는 소스에서 데이터를 미리 결합합니다:
| Source | Records | What It Provides |
|---|---|---|
| CVE List V5 | 342,360 | 모든 공개 취약점 |
| EPSS | 324,894 | 공격 가능성 — 실제로 공격될 가능성이 높은 취약점 |
| CISA KEV | 1,557 | 실제로 악용된 것으로 확인된 취약점 |
| OSV | 43,606 | 영향을 받는 버전 범위가 포함된 생태계 권고 |
| ExploitDB | 30,409 | 공개된 익스플로잇 |
| PoC‑in‑GitHub | 14,826 | 개념 증명 코드 |
| MITRE ATT&CK | 18,224 | 기술, 위협 행위자, 악성코드 |
| Nuclei Templates | 3,999 | 자동 스캔 템플릿 |
| CWE | 745 | 약점 분류 체계 |
그래프는 mmap을 통해 ≈ 100 µs에 열리며, 포인트 조회는 < 1 ms 안에 수행됩니다. 네트워크 호출도 없고, 콜드 스타트도 없으며, 속도 제한도 없습니다.
모든 응답에는 data_freshness 래퍼가 포함되어 각 소스가 마지막으로 동기화된 시점을 정확히 표시합니다 — 오래된 취약점 데이터는 데이터가 없는 것보다 더 위험하기 때문입니다.
왜 MCP인가?
Model Context Protocol은 AI 에이전트가 도구에 접근할 수 있게 하는 신흥 표준입니다. VulnGraph는 이를 네이티브하게 구현하고 있습니다 — JSON‑RPC를 통해 16개의 도구를 제공하며, HTTP 또는 stdio를 통해 사용할 수 있습니다.
MCP와 호환되는 모든 에이전트는 이러한 도구들을 자동으로 탐색할 수 있습니다. 에이전트가 tools/list를 호출하면 전체 입력 스키마와 함께 16개의 취약점 인텔리전스 도구가 표시되고, 바로 쿼리를 시작합니다 — 문서도, 통합 코드도 필요 없습니다.
{
"method": "tools/call",
"params": {
"name": "check_version",
"arguments": {
"ecosystem": "npm",
"package": "axios",
"version": "1.7.4"
}
}
}0.019 ms 후, 에이전트는 axios@1.7.4가 안전한지 여부를 알게 됩니다.
이것이 가능하게 하는 것
- 코드 리뷰 에이전트가 병합 전에 취약한 종속성을 표시합니다
- 보안 코파일럿이 실제 익스플로잇 인텔리전스를 기반으로, CVSS만이 아니라 triage합니다
- 사고 대응 에이전트가 CVE → 패키지 → 기법 → 위협 행위자를 매핑합니다
- CI/CD 게이트가 실제로 악용되는 취약점이 있는 배포를 차단합니다
사용해 보기
vulngraph.tools – 전체 467 K 노드 그래프가 WebAssembly를 통해 브라우저에서 실행됩니다. 모든 CVE를 검색하고, 관계를 탐색하며, 실시간 데이터 최신성을 확인하세요.
VulnGraph는 메모리 매핑된 바이너리 파일을 기반으로 하는 Rust 그래프 엔진입니다: 467,939 노드, 602,467 엣지, 9개의 소스, 서브밀리초 수준의 쿼리 지연. 에이전트를 위해 구축되었습니다.