GitLab RCE CVE-2026-97229: Alpine Linux 사고로 확인된 KEV 등재 취약점과 패치 우선순위 설계
홈랩 구축 체크리스트 — 로컬 LLM을 세우고 Tailscale로 안전하게 잇는 20단계를 A4 한 장으로 정리했습니다.
체크리스트 받기 →
GitLab의 CI/CD 정규식 컴파일러에서 발견된 정수 오버플로 취약점 CVE-2026-97229(CVSS 10.0)가 2026년 10월 29일 CISA KEV에 등재되었다. 인증 없이 서버에서 임의 코드를 실행할 수 있고, Alpine Linux 프로젝트가 자사 GitLab 서버에서 공격 시도를 겪은 사실이 공개되면서 실제 악용이 확인되었다. 이 글에서는 취약점의 구조, Alpine 사례가 주는 교훈, 셀프호스팅 환경의 패치 우선순위와 CI 자격 증명 점검 절차를 정보관리기술사의 관점에서 설계한다.
참고: 주제 입력에는 "10-20~21 공격 시도는 실패했다"고 적혀 있었다. 작성 시점(2026-10-31)에 확인한 보도에서 Alpine은 공격자가 워커 프로세스를 여덟 번 중단시켰고 그중 네 번은 익스플로잇이 중간 단계까지 진행되었다고 밝혔으며, 로그 일부가 유실되어 코드 실행을 배제하지 못한다고 했다. 따라서 본문은 "실패"가 아니라 "성공 여부를 확인할 수 없는 시도"로 다룬다. 또한 Onigmo 및 Ruby 버전에 관한 설명은 단일 매체 보도에 근거하므로 GitLab 공식 릴리스 노트로 재확인해야 한다.
사건 개요
- 대상: GitLab Community Edition 및 Enterprise Edition(셀프호스팅). GitLab.com은 이미 패치되었고 GitLab Dedicated는 조치가 필요 없다.
- 취약점 유형: 정수 오버플로(CWE-190). CI/CD 설정의 정규식을 컴파일하는 과정에서 검증이 부족하다.
- 인증: 불필요. 조건이 맞으면 비인증 사용자도 서버에서 코드를 실행할 수 있다고 GitLab은 설명한다.
- 영향 범위: 19.2 계열 19.2.8 미만, 19.3 계열 19.3.5 미만, 19.4 계열 19.4.2 미만. 19.1 이하와 19.5는 영향 대상이 아니다.
- 발견 경로: HackerOne 버그 바운티를 통해 제보되었다.
타임라인
| 시점 | 내용 |
|---|---|
| 2026-10-12 | GitLab 패치 릴리스와 보안 권고 공개 |
| 2026-10-20~21 | Alpine Linux GitLab 서버에 대한 공격 시도 |
| 2026-10-29 | CISA KEV 등재, 연방 기관 조치 기한은 일요일(11-01) |
GitLab은 초기 권고에서 19.3.4를 수정 버전으로 안내했으나 이후 보도는 19.3.5를 기준으로 한다. 19.3.4에 머문 서버는 같은 달 공개된 또 다른 CVSS 10.0 정규식 컴파일러 취약점 CVE-2026-110264에도 노출되므로, 최신 패치 버전(19.4.3, 19.3.6, 19.2.9 이상)으로 올려야 한다.
Alpine Linux 사고가 보여준 것
Alpine은 19.3.5가 아닌 19.3.4로 잘못 올린 서버에서 신규 가입 계정을 쓴 공격을 받았다. 공격자는 워커 프로세스를 반복해서 중단시켰고, 성공한 코드 실행은 충돌이나 웹 로그에 흔적을 남기지 않을 수 있다. Alpine은 서버를 폐쇄하고 재구축했으며 사용자 비밀번호 초기화와 GitLab 비밀 키 교체를 수행했다. 패키지와 10월 21일 안정 릴리스에 변조는 없었고, 패키지 서명 키는 애초에 GitLab 서버에 저장하지 않았다.
이 사례에서 얻는 교훈은 세 가지다.
- 버전 한 단계 차이가 곧 노출이다. 수정 버전 번호를 정확히 확인하지 않으면 패치했다고 믿은 서버가 취약한 상태로 남는다.
- 증거 부재는 안전의 증거가 아니다. 로그가 유실되었거나 흔적이 없는 공격은 침해 가정 대응을 요구한다.
- 서명 키 분리가 피해를 한정했다. 릴리스 서명 키를 CI 서버 밖에 둔 설계가 공급망 피해를 막았다.
패치 우선순위 설계
셀프호스팅 GitLab은 소스 저장소, CI 러너, 배포 자격 증명이 모이는 지점이어서 침해 시 파급이 크다. 우선순위는 다음 순서로 정한다.
- KEV 등재와 인터넷 노출: 악용이 확인되었고 가입이 열린 인스턴스라면 최우선이다.
- 인증 요건: 비인증 경로가 있으면 내부망 한정 인스턴스보다 앞선다.
- 자산 영향: 배포 키, 클라우드 자격 증명, 서명 키를 CI 변수에 두었는지 확인한다.
- CVSS·EPSS: 같은 조건 안에서 순서를 가르는 보조 지표다.
flowchart TD
A["GitLab 인스턴스 인벤토리"] --> B{"영향 버전인가?"}
B -->|"아니오"| Z["정기 패치 주기"]
B -->|"예"| C{"인터넷 노출 또는 가입 개방?"}
C -->|"예"| D["노출 제한 후 즉시 패치"]
C -->|"아니오"| E["7일 이내 패치"]
D --> F["침해 흔적 점검"]
E --> F
F --> G{"코드 실행 의심?"}
G -->|"예"| H["재구축 및 비밀 교체"]
G -->|"아니오"| I["감시 강화 및 종료"]
패치 시 확인할 점은 다음과 같다.
- 목표 버전은 최신 패치 릴리스(19.4.3, 19.3.6, 19.2.9 이상)로 잡는다.
- 단일 매체 보도에 따르면 수정이 패키지에 포함된 Ruby에 있어서, 별도 Ruby를 쓰는 자체 컴파일 설치나 이미지는 Ruby도 갱신해야 한다. 공식 노트로 확인한다.
- 즉시 패치가 불가능하면 익명 접근 제한, 신규 가입 차단, 공개 프로젝트 쓰기 권한 제한, CI 린트 경로 차단 같은 임시 조치를 쓰되 근본 해결이 아님을 명시한다.
외부 노출 면과 CI 자격 증명 점검
- 노출 면: 인터넷에서 접근 가능한 GitLab 인스턴스, 가입 허용 설정, 공개 프로젝트 정책을 점검한다. Shadowserver는 노출된 Community Edition 인스턴스를 약 2,800대로 추적한다.
- 흔적 점검: 워커 프로세스의 반복 중단, 이상한 신규 계정, CI 린트 요청 급증을 확인하고 GitLab이 배포한 탐지 규칙을 적용한다.
- 자격 증명 범위: CI/CD 변수, 러너 등록 토큰, 배포 키, 클라우드 키, 패키지 레지스트리 토큰을 목록화한다.
- 교체 기준: 코드 실행 정황이 있거나 로그 신뢰성이 낮으면 해당 서버가 읽을 수 있던 비밀을 모두 교체한다. GitLab의
secrets.yml같은 서버 비밀 키도 포함한다. - 구조 개선: 서명 키와 프로덕션 배포 자격 증명은 CI 서버 밖에 두고, 단기 토큰(OIDC)을 사용해 유출 시 유효 기간을 줄인다.
정책으로 정착시키는 방법
| 조건 | 권장 조치 기한 |
|---|---|
| KEV 등재 + 인터넷 노출 | 노출 제한 즉시, 패치 72시간 이내 |
| KEV 등재 + 내부 한정 | 7일 이내 |
| 미악용 + 인터넷 노출 | 14일 이내 |
| 그 외 | 정기 패치 주기 |
여기에 패치 후 실제 실행 버전 검증, 릴리스 노트 구독, KEV 자동 대조를 절차로 포함한다.
마무리
CVE-2026-97229는 CVSS 10.0이라는 점수보다 KEV 등재와 비인증 접근, CI 서버에 모인 자격 증명이 긴급도를 결정한다. Alpine의 사례는 버전 번호 확인 실수와 흔적 없는 공격이 얼마나 쉽게 겹치는지 보여준다. 패치 전에 노출을 줄이고, 패치 후 실행 버전을 검증하며, 의심되면 재구축과 비밀 교체까지 가야 한다. 서명 키 분리 같은 구조적 통제가 사고의 피해 범위를 한정한다.
Keywords
GitLab, CVE-2026-97229, CISA KEV, Integer Overflow, CI/CD Security, Patch Priority, 정수 오버플로, 패치 우선순위, 자격 증명 교체, 공급망 보안
Sources
- CISA says max severity GitLab flaw now exploited in the wild (BleepingComputer)
- GitLab warns of max severity code execution vulnerability (BleepingComputer)
- CVE-2026-97229: Critical Unauthenticated Remote Code Execution in GitLab (Rapid7)
- CISA Adds GitLab's CVSS 10.0 Flaw to Its Exploited-Vulnerabilities List (PBX Science)
- U.S. CISA adds GitLab and Cisco flaws to its KEV catalog (Security Affairs)
'IT Professional Engineering > SEC' 카테고리의 다른 글
홈랩 구축 체크리스트를 A4 한 장으로 드립니다
로컬 LLM을 세우고 Tailscale로 안전하게 잇는 20단계. 이메일을 남기면 바로 보내드립니다. 광고 없이, 언제든 수신거부.
체크리스트 받기 →