뉴스 IT 뉴스

GitLab AI Gateway 9.9점 취약점은 누가 고쳐야 할까, 직접 설치한 곳만 19.4.1 등으로 올리면 된다

2026년 10월 04일 3회 2시간 전
GitLab AI Gateway 9.9점 취약점은 누가 고쳐야 할까, 직접 설치한 곳만 19.4.1 등으로 올리면 된다

GitLab이 10월 2일(미국 시간) AI Gateway의 치명적 취약점 CVE-2026-90970을 고쳤습니다. 위험도 점수(CVSS)는 10점 만점에 9.9점입니다. 로그인한 사용자가 AI 기능의 격리 장치를 빠져나가 서버에서 명령을 실행할 수 있었습니다.

먼저 결론부터 적으면 이렇습니다.

  • GitLab.com이나 GitLab Dedicated를 쓰면 할 일이 없습니다. GitLab이 운영하는 AI Gateway는 이미 고쳐졌습니다.
  • AI Gateway를 직접 설치해 운영하는 곳만 올려야 합니다. 고친 버전은 19.2.4, 19.3.2, 19.4.1입니다.
  • 임시로 막는 방법은 없습니다. GitLab은 우회책을 내놓지 않았고, 버전을 올리는 것만 권했습니다.
  • 실제 공격은 아직 보고되지 않았습니다. 미국 사이버보안청(CISA)의 평가도 "공격 없음"입니다.

이 글은 GitLab 공식 안내문, CVE 기록, GitLab의 AI Gateway 설치 문서를 직접 읽고 정리한 것입니다. 이 블로그는 GitLab을 운영하지 않아서 직접 시험해 보지는 않았습니다.

GitLab AI Gateway 취약점 CVE-2026-90970 핵심: 10월 2일 수정, CVSS 9.9, 직접 설치한 AI Gateway만 해당, 고친 버전 19.2.4·19.3.2·19.4.1

이번 취약점의 핵심 네 가지입니다.

AI Gateway는 무엇인가

GitLab에는 GitLab Duo라는 AI 기능이 있습니다. 코드를 추천하고, 이슈를 요약하고, 여러 단계의 일을 AI 에이전트에게 맡길 수 있습니다. AI Gateway는 이 기능들이 실제 AI 모델에 요청을 보낼 때 거치는 중간 서버입니다. 요청이 정말 로그인한 사용자에게서 왔는지 확인하는 일도 이 서버가 맡습니다.

AI Gateway는 두 가지 방식으로 씁니다.

방식누가 운영하나이번 취약점
GitLab이 운영하는 AI Gateway (GitLab.com, Dedicated, 대부분의 Self-Managed)GitLab이미 고쳐짐. 할 일 없음
직접 설치한 AI Gateway (Duo Self-Hosted, 자체 모델 연결)회사·개인직접 올려야 함

이 표가 뜻하는 것은, GitLab 서버를 직접 운영하더라도 AI Gateway까지 직접 설치하지 않았다면 해당되지 않는다는 점입니다. AI Gateway를 직접 설치하는 경우는 주로 회사가 자기 서버의 AI 모델을 GitLab Duo에 연결할 때입니다.

어떤 문제였나

GitLab 공식 안내문은 이 문제를 이렇게 적었습니다.

"escape the prompt template sandbox via a specially crafted flow configuration"

GitLab 패치 안내문 (2026년 10월 2일)

풀어 쓰면, 특별히 꾸민 "플로" 설정으로 프롬프트 템플릿의 격리 장치(샌드박스)를 빠져나갈 수 있었다는 말입니다.

낱말을 하나씩 풀면 이렇습니다.

  • 플로(flow): GitLab Duo Agent Platform에서 AI 에이전트가 할 일을 순서대로 적어 둔 설정입니다. 사용자가 직접 만들 수 있습니다.
  • 프롬프트 템플릿: AI에게 보낼 문장의 틀입니다. 빈칸에 이슈 제목이나 코드 같은 값을 끼워 넣어 완성합니다.
  • 샌드박스: 템플릿이 "빈칸 채우기"만 하고 서버의 다른 기능에는 손대지 못하게 막는 울타리입니다.

템플릿 엔진은 빈칸을 채우는 것 말고도 간단한 계산이나 함수 호출을 할 수 있는 경우가 많습니다. 그래서 울타리가 조금이라도 새면, 빈칸에 들어간 글이 서버의 명령으로 실행될 수 있습니다. 이런 종류를 "템플릿 인젝션"이라고 부르고, CVE 기록의 분류(CWE-1336)도 이것입니다. 이번에는 사용자가 만든 플로 설정이 그 통로가 됐습니다.

9.9점은 얼마나 위험한가

CVSS는 취약점의 위험도를 0~10점으로 매기는 국제 기준입니다. 이번 점수는 아래 조건들이 모여 9.9점이 됐습니다.

CVSS 3.1 점수 9.9의 구성: 인터넷으로 공격 가능, 공격이 쉬움, 일반 로그인 권한이면 됨, 다른 사람의 행동 필요 없음, 영향이 AI Gateway 밖으로 번짐, 기밀성·무결성·가용성 모두 높음

CVSS 점수를 이루는 여덟 가지 조건을 쉬운 말로 바꾼 것입니다.

항목 (기호)이번 값뜻
공격 경로 (AV)네트워크인터넷이나 사내망 너머에서 공격할 수 있습니다
공격 난이도 (AC)낮음특별한 조건 없이 됩니다
필요한 권한 (PR)낮음Duo Agent Platform을 쓸 수 있는 일반 계정이면 됩니다. 관리자일 필요가 없습니다
사용자 행동 (UI)필요 없음다른 사람이 무엇을 누르지 않아도 됩니다
범위 (S)바뀜피해가 AI Gateway 안에서 끝나지 않고 다른 곳으로 번질 수 있습니다
기밀성·무결성·가용성 (C·I·A)모두 높음정보를 빼내고, 바꾸고, 서비스를 멈출 수 있습니다

이 표가 뜻하는 것은, 계정 하나만 있으면 쉽게 서버 전체를 차지할 수 있는 수준이라는 점입니다. 10점이 아닌 이유는 로그인이 필요하다는 것 하나뿐입니다. 그래서 바깥 사람이 아니라 계정을 가진 사람(직원, 협력사, 탈취된 계정)이 위험의 출발점입니다.

The Hacker News 보도에 따르면, GitLab AI Gateway에서는 올해 2월에도 플로 정의를 통한 비슷한 템플릿 문제(CVE-2026-1868, 역시 9.9점)가 고쳐졌습니다. 같은 부분에서 두 번 나온 셈입니다.

내 GitLab은 해당되나

내 GitLab이 해당되는지 확인하는 순서: GitLab.com이나 Dedicated면 할 일 없음, 직접 설치한 AI Gateway가 없으면 할 일 없음, 있으면 버전 확인 후 19.2.4·19.3.2·19.4.1 이상으로 올림

세 가지 질문으로 확인할 수 있습니다.

지금 쓰는 AI Gateway 버전올릴 버전
18.1.6 ~ 19.2.319.2.4
19.3.0 ~ 19.3.119.3.2
19.4.019.4.1
18.1.5 이하이번 취약점 대상은 아니지만, 오래된 버전이라 함께 올리는 것이 좋습니다

이 표가 뜻하는 것은, 쓰는 버전대의 고친 판으로 올리면 된다는 점입니다. GitLab 설치 문서는 AI Gateway 버전을 GitLab 본체 버전에 맞추라고 안내합니다. 예를 들어 GitLab이 19.4.x라면 AI Gateway 이미지는 self-hosted-v19.4.1-ee 이상을 씁니다.

Docker로 설치했다면

GitLab 설치 문서의 순서는 이렇습니다. 지금 컨테이너를 멈추고 지운 뒤, 새 태그의 이미지를 받아 같은 환경 변수로 다시 실행합니다.

sudo docker stop gitlab-aigw
sudo docker rm gitlab-aigw
# 새 이미지(예: ...ai-assist/model-gateway:self-hosted-v19.4.1-ee)를 받아
# 원래 쓰던 환경 변수 그대로 다시 실행한다

컨테이너 이름은 설치할 때 정한 이름으로 바꿔 씁니다. 지우기 전에 원래 실행 명령과 환경 변수를 따로 적어 두는 것이 안전합니다.

Kubernetes(Helm)로 설치했다면

helm upgrade --install ai-gateway ai-gateway/ai-gateway --version <새 차트 버전> 형태로 올립니다. GitLab 문서는 태그 대신 이미지 지문(digest)으로 고정하는 방법도 권합니다.

로컬 AI 서버를 쓰는 사람에게 주는 교훈

이 블로그를 읽는 분 가운데는 LM Studio나 Unsloth Studio로 내 PC에 AI 서버를 띄워 쓰는 분이 많습니다. 이번 일은 규모가 다를 뿐, 같은 질문을 던집니다. "AI 서버에 들어가는 글이, 서버를 움직이는 명령이 될 수 있는가?"

  • AI 서버 주소를 밖으로 열지 않습니다. 로컬 AI 서버는 보통 127.0.0.1(내 PC 안에서만)로 열려 있습니다. 다른 기기에서 쓰려고 사내망이나 인터넷에 열면, 이번처럼 "로그인만 하면 되는" 공격의 대상이 됩니다.
  • API 키를 켭니다. 이 블로그의 테스트 PC에서 Unsloth Studio는 키 없이 요청하면 거절(401)합니다. 키는 PC마다 따로 만들어 둡니다.
  • 에이전트가 실행하는 도구를 좁힙니다. AI가 파일을 읽고 명령을 실행하게 하는 도구(MCP 등)를 붙였다면, 허용 범위를 꼭 필요한 만큼만 줍니다. 89번 글에서 MCP 도구를 붙였을 때도 실행 전에 확인 창이 떴습니다.
  • 업데이트 알림을 챙깁니다. 이번 취약점도 고친 버전이 나온 뒤에야 알려졌습니다. 쓰는 AI 프로그램의 보안 공지를 구독해 두면 좋습니다.

MCP 도구를 로컬 AI에 붙여 본 결과는 로컬 AI에 MCP 도구를 붙이면 달라질까에, Unsloth Studio를 쓰는 방법은 Unsloth Studio로 Qwen3.8 27B를 돌리면 어떤 설정이 좋을까에 있습니다. 판단만 하는 AI 모델 이야기는 Perplexity pplx-decider 소식에서 다뤘습니다.

정리

  • CVE-2026-90970은 직접 설치한 GitLab AI Gateway에서, Duo Agent Platform을 쓰는 로그인 사용자가 서버 명령을 실행할 수 있었던 취약점입니다. 위험도 9.9점입니다.
  • GitLab.com·Dedicated와 GitLab이 운영하는 AI Gateway를 쓰는 곳은 할 일이 없습니다.
  • 직접 설치했다면 19.2.4, 19.3.2, 19.4.1 중 맞는 버전으로 바로 올려야 합니다. 임시 우회책은 없습니다.
  • 10월 2일 기준 실제 공격은 보고되지 않았습니다.

이 글의 한계

  • GitLab을 운영하지 않아 직접 시험하거나 업데이트해 보지 않았습니다. 내용은 GitLab 공식 안내문, CVE 기록, 설치 문서를 기준으로 했습니다.
  • 2월의 비슷한 취약점(CVE-2026-1868)은 The Hacker News 보도를 바탕으로 적었습니다.
  • 2026년 10월 4일 기준이고, 공격 여부 평가는 바뀔 수 있습니다.

자주 묻는 질문

GitLab.com을 쓰는데 무엇을 해야 하나요?

할 일이 없습니다. GitLab이 운영하는 AI Gateway는 이미 고쳐졌다고 GitLab이 밝혔습니다. GitLab Dedicated와, GitLab이 운영하는 AI Gateway를 쓰는 Self-Managed도 같습니다.

GitLab 서버를 직접 운영하는데 해당되나요?

AI Gateway까지 직접 설치해 운영할 때만 해당됩니다. 직접 설치한 AI Gateway가 18.1.6~19.2.3, 19.3.0~19.3.1, 19.4.0이면 각각 19.2.4, 19.3.2, 19.4.1로 올려야 합니다.

업데이트 전에 임시로 막을 방법이 있나요?

GitLab은 우회책을 내놓지 않았습니다. 버전을 올리는 것이 유일한 방법입니다. 올리기 전까지는 Duo Agent Platform을 쓸 수 있는 계정을 최소로 줄이는 것 정도를 생각해 볼 수 있습니다(공식 권고는 아님).

실제로 공격당한 사례가 있나요?

10월 2일 기준으로 보고된 공격은 없습니다. 미국 사이버보안청(CISA)의 평가도 "공격 없음"이었습니다. 다만 고친 버전이 공개되면 차이를 분석해 공격 방법을 찾는 경우가 많아, 서둘러 올리는 것이 좋습니다.

참고: GitLab 패치 안내: AI Gateway 19.2.4, 19.3.2, 19.4.1 · GitLab 이슈 628842 · CVE-2026-90970 기록 · GitLab AI Gateway 설치 문서 · The Hacker News 보도

관련 게시글

댓글 0개