용어테크
CVE와 CVSS란? 취약점 번호와 심각도 점수 읽는 법
CVE는 공개된 보안 취약점마다 붙는 공통 번호이고, CVSS는 그 취약점이 얼마나 심각한지 0~10점으로 매기는 표준 점수다. 같은 취약점도 누가 어느 판으로 매겼는지에 따라 점수가 다를 수 있다.
한 줄로 말하면
CVE는 공개된 보안 취약점에 붙는 공통 번호이고, CVSS는 그 취약점의 심각도를 0~10점으로 매기는 표준 점수다. CVE 프로그램에 따르면 취약점 하나에 CVE 기록이 하나씩 붙고, 보안 담당자와 도구는 이 번호로 같은 문제를 말하고 있는지 맞춘다. 점수 쪽은 세계 침해사고대응팀들의 협의체인 FIRST가 정한 기준이다.
번호는 누가 붙이나
번호는 CVE 프로그램과 협약한 기관이 붙인다. CVE 용어집은 이런 곳을 CVE 번호 부여 기관(CNA)이라 부르고, 정해진 범위 안에서 번호를 붙이고 기록을 공개하는 곳으로 정의한다. 번호는 CVE 뒤에 연도와 일련번호를 붙인 꼴인데, 2026년 10월 공개된 웹 서버 프로그래밍 언어 PHP의 취약점 PHP2Shell의 CVE-2026-109618은 PHP 프로젝트가 직접 붙였다. 연도가 취약점을 찾은 해를 뜻하지는 않는다. 번호 부여 규칙은 처음 공개된 해, 기록이 처음 나온 해, 번호를 예약한 해 가운데 하나를 쓰도록 권한다.
다만 번호에는 심각도가 담기지 않아, 점수는 번호를 붙인 곳이나 미국 국립표준기술연구소(NIST)의 취약점 데이터베이스(NVD) 같은 곳이 CVSS로 따로 매긴다.
CVSS는 어떻게 계산하나
기본 점수는 공격이 얼마나 쉬운지와 뚫렸을 때 피해가 얼마나 큰지를 합쳐 만든다. FIRST의 CVSS 3.1 명세에 따르면 기본 점수는 시간과 환경에 따라 바뀌지 않는 취약점 자체의 성질로 매기고, 지표 여덟 개의 값마다 정해진 숫자를 공식에 넣는다. 시간과 사용 환경을 반영하는 점수도 따로 있지만, NVD 같은 곳이 싣는 것은 대개 이 기본 점수다. 공격 쪽은 공격 경로(네트워크·인접·로컬·물리), 공격 복잡도, 필요한 권한, 사용자 관여 여부다.
피해 쪽은 정보가 새는 기밀성 피해, 정보가 바뀌는 무결성 피해, 서비스를 쓸 수 없게 되는 가용성 피해, 그리고 영향 범위다. 영향 범위는 피해가 취약한 프로그램의 보안 경계를 넘어 다른 구성 요소까지 번지는지를 뜻하고, 번지면 ‘바뀜’으로 매겨 다른 공식을 쓴다.
NVD가 매긴 CVE-2026-109618은 네트워크로, 권한도 사용자 관여도 없이 쉽게 공격할 수 있고 세 피해가 모두 ‘높음’이라 이렇게 계산된다.
- 피해 쪽: 기밀성·무결성·가용성의 ‘높음’은 각각 0.56이라 1 − (1 − 0.56)³ = 0.9148이다. NVD가 영향 범위를 ‘그대로’로 매겼으므로 6.42를 곱해 약 5.873이 된다.
- 공격 쪽: 8.22 × 네트워크 0.85 × 낮은 복잡도 0.77 × 권한 없음 0.85 × 관여 없음 0.85 = 3.887이다.
- 둘을 더한 9.760을 소수 첫째 자리로 올리면 9.8이다.
같은 PHP2Shell의 두 번째 번호 CVE-2026-109619는 공격 복잡도만 ‘높음’(0.44)이다. 그래서 공격 쪽이 2.221로 줄어 8.1이 된다.
한편 CVSS 4.0 명세는 계산 방식이 다르다. 지표 조합을 심각도가 비슷한 묶음으로 나눠 표에서 묶음의 점수를 찾고, 묶음 안의 위치에 따라 공식으로 깎아 낸다.
왜 보나
취약점이 쏟아질 때 무엇부터 고칠지 가르는 첫 숫자다. CVSS 3.1 명세는 기본 점수가 다른 취약점과 견준 상대적 심각도라고 설명하면서도, 가장 나쁜 피해를 가정한 점수라 쓰는 쪽이 자기 환경을 더해 우선순위를 정하라고 권한다.
숫자는 이렇게 읽는다
- 등급은 점수 구간으로 나눈다. FIRST는 0.0을 ‘없음’, 0.1~3.9를 ‘낮음’, 4.0~6.9를 ‘중간’, 7.0~8.9를 ‘높음’, 9.0~10.0을 ‘심각’으로 둔다.
- 같은 취약점도 점수가 둘일 수 있다. CVE-2026-109618은 번호를 붙인 PHP가 4.0판으로 9.2를, NVD가 3.1판으로 9.8을 매겼다. 점수를 보면 누가 어느 판으로 매겼는지 함께 본다.
- 점수는 실제로 공격에 쓰였는지를 말하지 않는다. 그것은 미국 사이버보안·인프라보안청(CISA)의 악용 확인 취약점(KEV) 목록으로 본다. 목록에 오른 것은 CISA가 실제 악용을 확인한 취약점이지만, 목록에 없다고 악용이 없었다는 뜻은 아니다. NVD 기록에 따르면 CISA는 2026년 10월 26일 PHP2Shell의 두 번호(109618·109619)를, 27일 압축 형식 Brotli의 디코더 취약점 CVE-2026-111497을 이 목록에 올렸다.
출처
- CVE 프로그램 — 개요: 취약점 하나에 기록 하나
- CVE 프로그램 — 용어집: 번호 부여 기관(CNA)의 정의
- CVE 프로그램 — 번호 부여 규칙: 번호의 연도를 정하는 기준(4.2.19)
- CVE 기록 — CVE-2026-109618: 번호를 붙인 곳(PHP)과 CVSS 4.0 점수
- FIRST — CVSS 3.1 명세: 계산식과 등급 구간
- FIRST — CVSS 4.0 명세: 4.0판의 계산 방식
- NVD — CVE-2026-109618, 109619, 111497: NVD 점수와 KEV 등재일
- CISA — 악용 확인 취약점(KEV): 악용 확인 목록