CVSS 벡터를 오프라인으로 평가 - v3.1·v4.0 지원, 의존성 제로
개요
전체 오프라인으로 CVSS 벡터를 파싱하고 점수를 계산하는 아주 작은(≈ 4 KB) JavaScript 라이브러리입니다. 의존성이 전혀 없으며 빌드 단계가 필요 없고 네트워크 호출도 하지 않기 때문에 CI 파이프라인, 서버‑사이드 스크립트, 혹은 웹 컴포넌트로 임베드하기에 이상적입니다.
설치
npm install @hailbytes/cvss-calc
사용법
import { calculate } from '@hailbytes/cvss-calc';
const result = calculate('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H');
// { score: 9.8, severity: 'Critical', version: '3.1', vector: '...' }
라이브러리는 벡터 문자열에서 CVSS 버전을 자동으로 감지하므로 동일한 API를 v4.0에서도 사용할 수 있습니다:
const v4 = calculate('CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N');
// { score: 10.0, severity: 'Critical', version: '4.0', vector: '...' }
웹 컴포넌트
커스텀 엘리먼트는 완전한 인터랙티브 계산기를 렌더링합니다. cvss-calculated 이벤트를 수신하여 JavaScript에서 점수를 가져올 수 있습니다.
일반적인 사용 사례
- CI 게이트 – SBOM에 새로 추가된 CVE 중 점수가 ≥ 7.0인 경우 빌드를 자동으로 실패시킵니다.
- 티켓 시스템 연동 – 심각도에 따라 Jira(또는 기타) 이슈를 자동으로 우선순위 지정합니다.
- 정적 상태 페이지 – 공개된 각 CVE를 실시간 인터랙티브 계산기와 함께 표시합니다.
사양 준수
점수 계산은 v3.1 및 v4.0 모두에 대해 공식 FIRST CVSS 사양을 따릅니다.
소스 및 라이선스
소스 코드, 문서, 이슈 트래킹은
github.com/hailbytes/cvss-calc 에서 확인할 수 있으며 MIT License 하에 배포됩니다.