CVSS란 — 깃랩 취약점이 10점이 아니라 9.9점인 이유
CVSS, the Common Vulnerability Scoring System, is the 0-to-10 scale the security industry uses to rate how severe a software flaw is. It is maintained by the nonprofit FIRST; version 3.1 is still the most widely published and version 4.0 was released in November 2023. A score is built from eight base metrics such as how an attacker reaches the system, whether they need to log in and whether the damage spreads beyond the flawed component. GitLab's self-hosted AI Gateway flaw CVE-2026-90970, patched on October 2, 2026, scored 9.9 rather than 10 because the attacker must already be a logged-in user. A high CVSS score measures severity, not how likely a flaw is to be exploited.
CVSS(공통 취약점 점수 체계)는 소프트웨어 취약점이 얼마나 심각한지를 0~10점으로 매기는 국제 기준이다. 비영리 단체 FIRST가 관리하며, 지금도 가장 널리 쓰는 것은 3.1판이고 2023년 11월 4.0판이 나왔다. 점수는 공격 경로, 공격 난이도, 로그인 필요 여부, 사용자 클릭 필요 여부, 피해가 다른 구성요소로 번지는지, 기밀성·무결성·가용성 피해 여덟 가지로 계산한다. 9.0 이상은 '긴급(Critical)'이다. 2026년 10월 2일 패치된 깃랩 자체 호스팅 AI 게이트웨이 취약점(CVE-2026-90970)이 10점이 아니라 9.9점인 것은 공격자가 로그인한 사용자여야 하기 때문이다. CVSS는 심각도이지 실제로 공격당할 가능성이 아니다
3줄 요약
- 정의 — 취약점 심각도를 0~10점으로 매기는 국제 기준. FIRST 관리, 3.1판이 주류이고 4.0판은 2023년 발표
- 계산 — 공격 경로·난이도·로그인 필요·클릭 필요·피해 확산·기밀성·무결성·가용성 8개 항목
- 읽는 법 — 9.0 이상 '긴급'. 깃랩 9.9점은 로그인 필요 때문에 10점에서 0.1 깎였다. 점수 ≠ 공격 가능성
핵심 질문
- CVSS 점수 기준
- **0~10점을 다섯 등급으로 나눈다.** | 점수 | 등급 | 대응 감각 | |---|---|---| | 0.0 | 없음(None) | — | | 0.1~3.9 | 낮음(Low) | 정기 패치 때 | | 4.0~6.9 | 보통(Medium) | 계획해서 패치 | | 7.0~8.9 | 높음(High) | 빠르게 패치 | | **9.0~10.0** | **긴급(Critical)** | 즉시 패치 | 등급 구간은 CVSS 3.1과 4.0이 같다.
- CVSS 9.9와 10 차이
- **보통 '공격자가 로그인해야 하느냐' 하나의 차이다.** | 항목 | 10.0 | 9.9 | |---|---|---| | 공격 경로 | 네트워크 | 네트워크 | | 공격 난이도 | 낮음 | 낮음 | | **필요 권한** | **없음** | **낮음(일반 계정)** | | 사용자 클릭 | 불필요 | 불필요 | | 피해 확산 | 다른 구성요소로 번짐 | 번짐 | | 기밀성·무결성·가용성 | 모두 높음 | 모두 높음 | 깃랩 CVE-2026-90970은 듀오 에이전트 플랫폼 권한이 있는 로그인 사용자가 공격할 수 있어 9.9점이다.
- CVSS 3.1 4.0 차이
- **4.0은 '공격이 실제로 되는 조건'을 더 세밀하게 나눈다.** | 항목 | CVSS 3.1 | CVSS 4.0 | |---|---|---| | 발표 | 2019년 6월 | 2023년 11월 | | 피해 범위 | '범위 변경(Scope)' 한 항목 | 취약 시스템과 후속 시스템 피해를 따로 평가 | | 새 항목 | — | 공격 요구조건(AT) 등 | | 점수 표기 | CVSS:3.1/… | CVSS:4.0/… | 지금도 미국 NVD 등 많은 곳이 3.1 점수를 함께 싣는다.
보안 뉴스에 붙는 'CVSS 9.9'는 소프트웨어 구멍의 심각도를 10점 만점으로 매긴 점수다. 2026년 10월 2일 깃랩이 패치한 자체 호스팅 AI 게이트웨이 취약점(CVE-2026-90970)이 9.9점이었다. 그런데 왜 10점이 아니라 9.9일까. 그 0.1에 CVSS를 읽는 법이 다 들어 있다.
1. CVSS란 — 누가, 어떻게 매기나
CVSS(Common Vulnerability Scoring System)는 침해사고 대응팀들의 국제 협의체 FIRST가 관리하는 공개 기준이다. 2005년 처음 나왔고, 지금 가장 널리 쓰이는 것은 2019년 3.1판, 최신은 2023년 11월 나온 4.0판이다.
점수는 취약점을 처음 알린 회사나 연구자, 또는 미국 국가취약점데이터베이스(NVD) 같은 기관이 매긴다. 같은 취약점에 회사 점수와 NVD 점수가 다르게 붙는 일도 흔하다.
2. 점수는 여덟 개 질문으로 나온다 (CVSS 3.1 기본 점수)
| 항목 | 묻는 것 | 가장 위험한 값 |
|---|---|---|
| 공격 경로(AV) | 어디서 공격하나 | 네트워크(인터넷 너머) |
| 공격 난이도(AC) | 특수 조건이 필요한가 | 낮음 |
| 필요 권한(PR) | 로그인해야 하나 | 없음 |
| 사용자 상호작용(UI) | 피해자가 클릭해야 하나 | 불필요 |
| 범위(S) | 피해가 다른 구성요소로 번지나 | 번짐(Changed) |
| 기밀성(C) | 정보가 새나 | 높음 |
| 무결성(I) | 데이터가 바뀌나 | 높음 |
| 가용성(A) | 서비스가 멈추나 | 높음 |
여덟 개가 모두 '가장 위험한 값'이면 10.0이다. 여기서 필요 권한만 '낮음(일반 계정)'으로 바꾸면 계산 결과가 9.9가 된다.
깃랩 사례가 정확히 이 경우다. 깃랩 설명에 따르면 듀오 에이전트 플랫폼을 쓸 수 있는 로그인 사용자가 조작한 플로 설정으로 프롬프트 템플릿의 샌드박스를 빠져나가 서버에서 임의 명령을 실행할 수 있었다. 인터넷 너머에서, 클릭 없이, 서버 전체를 장악할 수 있지만 — 계정이 하나 있어야 한다. 그 조건이 0.1점이다.
| 깃랩 CVE-2026-90970 | 내용 |
|---|---|
| 점수 | 9.9 (긴급) |
| 대상 | 자체 호스팅 AI 게이트웨이만 (깃랩닷컴·데디케이티드는 해당 없음) |
| 취약 버전 | 18.1.6~19.2.3, 19.3.0~19.3.1, 19.4.0 |
| 수정 버전 | 19.2.4, 19.3.2, 19.4.1 |
| 유형 | 템플릿 엔진 이스케이프(CWE-1336) |
| 올해 같은 유형 | 2월 CVE-2026-1868에 이어 두 번째 9.9 |
3. 점수를 읽을 때 조심할 것
① 점수는 심각도이지 위험도가 아니다. CVSS 기본 점수는 '터지면 얼마나 나쁜가'다. '실제로 터질 가능성'은 따로 봐야 한다. 공격 코드가 공개됐는지, 실제 악용이 확인됐는지(미국 CISA의 KEV 목록)가 그 신호다. 깃랩 건은 10월 3일 기준 공개 공격 코드도, 악용 보고도 없었다.
② 내 환경에 해당하는지가 먼저다. 9.9점이어도 깃랩닷컴 사용자는 할 일이 없다. 반대로 5점짜리라도 내 서버가 인터넷에 열려 있으면 급하다. 패치가 아예 없는 상태에서 악용되면 점수와 상관없이 가장 비싼 취약점이 된다(「제로데이란」).
③ AI 시스템이 새 점수 대상이 됐다. 이번 깃랩 건은 AI 에이전트 기능의 '프롬프트 템플릿'에서 나왔다. AI 에이전트의 격리 장치가 뚫리는 사례가 이어지고 있다(「샌드박스란」·「프롬프트 인젝션이란」).
| 3.1 vs 4.0 | CVSS 3.1 | CVSS 4.0 |
|---|---|---|
| 발표 | 2019년 6월 | 2023년 11월 |
| 피해 범위 | '범위 변경' 한 칸 | 취약 시스템·후속 시스템 피해를 따로 |
| 공격 조건 | 난이도 한 칸 | 난이도 + 공격 요구조건(AT) |
| 현실 | 여전히 가장 많이 쓰임 | 점차 확대 |
4. 정리 — 점수 하나로 판단하지 않기
CVSS는 서로 다른 회사의 취약점을 같은 자로 재게 해 준 공통어다. 다만 9.9는 '즉시 확인하라'는 신호이지 '이미 공격당했다'는 뜻이 아니다. 확인 순서는 ① 내가 그 제품·버전을 쓰나 ② 패치가 나왔나 ③ 실제 악용 보고가 있나다.
- 깃랩 취약점의 전체 벡터 문자열은 원문으로 확인하지 못했다. 9.9의 해석은 CVSS 3.1 계산식과 깃랩이 밝힌 공격 조건에 근거했다.