
GitLab의 AI Gateway, 교묘하게 조작된 Flow 구성이 프롬프트 샌드박스를 벗어나도록 허용
- OrcaNEWOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 100만 토큰당 · 13 tok/s
- deepseekNEWDeepSeek: DeepSeek V4.1 Flash 10172026-10-1745지능
- DeepSeekNEWDeepSeek: DeepSeek V4.1 Flash2026-10-1740지능
- OrcaNEWOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 100만 토큰당 · 155 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952지능
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856지능
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 100만 토큰당 · 971 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238지능
- OpenAIOpenAI: GPT-6 Sol2026-09-2248지능
- AnthropicAnthropic: Claude Opus 5.52026-09-2258지능
- xAIGrok 4.72026-09-2146지능
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 100만 토큰당 · 104 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 100만 토큰당 · 964 tok/s
- OpenAIOpenAI: GPT-6 Astra2026-09-0453지능77코딩
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241지능76코딩
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245지능76코딩
- AnthropicAnthropic: Claude Fable 5.12026-09-0153지능82코딩
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 100만 토큰당 · 49 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 100만 토큰당 · 100 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642지능72코딩
2026년 10월 2일, GitLab은 자사의 AI Gateway—GitLab 인스턴스와 Duo 기능이 호출하는 언어 모델 사이에서 요청을 전달하는 미들웨어—에 대한 긴급 패치 릴리스를 발표하며 CVE-2026-90970을 지목하고 10점 만점에 9.9점으로 평가했습니다. GitLab의 표현에 따르면, 이 결함은 "Duo Agent Platform 접근 권한이 있는 인증된 사용자가 특수하게 조작된 flow 구성을 통해 프롬프트 템플릿 샌드박스를 탈출하여 AI Gateway에서 임의 명령 실행을 초래할 수 있게 허용했을 수 있습니다." 조치가 필요했던 것은 자체 호스팅 AI Gateway를 운영하는 조직뿐이었습니다. GitLab은 GitLab.com, GitLab Dedicated 및 GitLab 호스팅 게이트웨이를 사용하는 자체 관리 고객을 위해 자사가 운영하는 게이트웨이를 이미 수정했으며, 그 사실을 권고문에서 밝혔습니다. GitLab의 공지는 해당 결함이 실제로 악용된 적이 있다고 밝히지 않으며, 같은 날 미국 사이버보안 및 인프라 보안국(US Cybersecurity and Infrastructure Security Agency)이 CVE 기록에 첨부한 평가에는 악용 여부가 "none"으로 기재되어 있습니다. 이 발견의 공로는 invisiblemeerkat으로 알려진 HackerOne 연구원에게 돌아갔습니다. GitLab의 권고문, NVD 기록 및 그 뒤를 이은 보도는 결함이 무엇이었고 어떤 버전에 존재했는지에 관해 서로 일치합니다. 또한 누군가가 이를 실제로 사용한 적이 있는지라는 알려지지 않은 점에 대해서도 똑같이 일치합니다. 이 기록은 문서화된 다른 에이전트 인프라 취약점들과 함께 AI 사고 아카이브에 있으며, 각 항목에는 자체 출처, 심각도, 신뢰도 등급 및 이의 제기 플래그가 포함되어 있습니다.
권고안이 실제로 말하는 것과 빠뜨린 것
이 권고문은 짧다. GitLab 문서 사이트에 "GitLab AI Gateway Critical Patch Release: 19.2.4, 19.3.2, and 19.4.1"라는 제목으로 게시되었으며, "커스텀 플로 프롬프트 템플릿의 부적절한 중화 문제가 AI Gateway에 영향을 미침"이라는 제목에 Critical로 표시된 보안 수정 사항 하나를 나열한다. CVSS 3.1 벡터를 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H로 제시하는데 — 네트워크 도달 가능, 낮은 공격 복잡도, 낮은 권한 요구, 사용자 상호작용 없음, 범위 변경됨, 기밀성·무결성·가용성에 높은 영향 — 이다. 그 벡터는 공격자에 관해 정확하기 때문에 읽어볼 가치가 있다: 낮은 권한이지만, 어쨌든 권한이다. 권고문은 "Duo Agent Platform 접근 권한이 있는 인증된 사용자"라고 말하고 거기서 멈춘다. 역할, 권한, 또는 자체 문구인 "특정 조건 하에서"가 가리키는 조건을 명시하지 않는다.
이는 개념 증명을 공개하지 않고, 조작된 플로 구성(flow configuration)을 설명하지 않으며, 즉시 업데이트할 수 없는 게이트웨이를 위한 우회 방법도 제공하지 않는다. Hacker News는 10월 2일 보도에서 같은 누락을 지적하고 운영상 중요한 한 가지를 덧붙인다: 권고문은 게이트웨이가 패치되기 전에 공격을 받았는지 확인할 방법을 제공하지 않는다. Security Affairs는 다음 날 기사에서 같은 공백을 기록한다.
CVE에 첨부된 공통 취약점 목록 항목은 CWE-1336, 즉 템플릿 엔진에서 사용되는 특수 요소의 부적절한 중화입니다. GitLab의 권고문에는 Jinja라는 단어가 전혀 등장하지 않습니다. AI Gateway 자체 저장소 문서에는 등장합니다. 해당 프롬프트 레지스트리 문서는 "user 및 system과 같은 여러 역할에 대해 Jinja 표현식을 지원"한다고 프롬프트 구성 파일을 설명하며, "Jinja를 사용하여 입력 인수로 프롬프트 템플릿을 보간"한다고 Prompt 클래스를 설명합니다. CVE가 설명하는 격차는 바로 그 부류의 엔진이 유명한 문제입니다. 즉, 출력되는 것이 아니라 평가되는 템플릿에 사용자 제공 텍스트가 도달하는 것입니다.
왜 이 특정 호스트에서의 명령이 9.9의 가치가 있는가
AI Gateway는 사이드카가 아니다. GitLab의 자체 호스팅 문서에 따르면, AI Gateway는 GitLab으로부터 요청을 받아 프롬프트를 구성하고 모델 백엔드 — vLLM 서버, Amazon Bedrock, Azure OpenAI 또는 외부 제공자 — 와 통신하며, 완전한 자체 호스팅 배포에서는 프롬프트와 응답을 조직 자체 네트워크 안에 유지하는 구성 요소이다. GitLab의 AI Gateway 설치 가이드에서도 관리자에게 서명 키 쌍을 생성하고 그 두 부분을 AIGW_SELF_SIGNED_JWT__SIGNING_KEY 및 AIGW_SELF_SIGNED_JWT__VALIDATION_KEY(Duo Workflow에 해당하는 값 포함)로 서비스에 환경 변수로 전달하라고 안내한다. Security Affairs는 그 결과를 명확히 한다: 게이트웨이에서의 명령 실행은 공격자를 JWT 서명 자료를 보유하고 GitLab 인스턴스와 모델 인프라 사이의 경로에 위치한 호스트에 들어가게 한다.
그것이 장난감 속 샌드박스 탈출과 프로덕션 환경에서의 샌드박스 탈출의 차이입니다. 탈출은 모델에 도달할 필요가 없습니다. 모델 호출에 서명하는 데 사용되는 키를 보유한 프로세스에 도달하면 됩니다.
GitLab의 제품 문서는 권고문과 별도로, 사용자 지정 플로우를 생성하거나 편집하려면 관리 프로젝트에서 Maintainer 또는 Owner 역할이 필요하고, 이를 실행하려면 Developer 이상이 필요하다고 명시합니다. 권고문은 그 매핑을 확인해 주지 않으며, The Hacker News는 "Duo Agent Platform access" 외에는 어떤 역할도 명시되지 않았다고 지적합니다. 자신의 노출도를 가늠하는 독자는 문서를 제품의 권한 모델로, 권고문의 침묵은 바로 그 침묵으로, 즉 모순이 아닌 것으로 받아들여야 합니다.
설정됨, 그리고 설정되지 않음
레코드 자체의 필드는 위의 모든 내용과 일치하며, 권고문에 없는 내용은 아무것도 추가하지 않는다. 다음은 독자가 한 줄 요약으로는 얻을 수 없는 구분이다.
• 확인된 사항: GitLab AI Gateway의 치명적 심각도 결함으로, 2026년 10월 2일에 공개되었으며, CVSS 9.9, CWE-1336에 해당하고, 인증된 Duo Agent Platform 사용자가 조작된 흐름 구성을 통해 도달할 수 있어 결과적으로 게이트웨이 호스트에서 명령이 실행됩니다.
• 확인된 사항: 영향을 받는 범위 — 18.1.6부터 19.2.4 이전까지의 모든 AI Gateway 버전, 19.3부터 19.3.2 이전까지, 19.4부터 19.4.1 이전까지 — 및 수정 버전인 19.2.4, 19.3.2, 19.4.1.
• 확인된 사항: GitLab이 호스팅하는 게이트웨이는 공개 전에 패치되었으므로 해당 고객은 별도 조치를 취할 필요가 없습니다. 자체 호스팅 운영자에게는 릴리스 게시물에 앞서 직접 연락했으며, 이는 GitLab이 권고문 자체에서 밝히고 있습니다.
• 확인된 사항: 제보자 크레딧(invisiblemeerkat), 그리고 실제 환경에서의 악용에 관한 어떠한 언급도 없음.
• 확인되지 않음:누군가 이를 악용했는지 여부. 2026년 10월 2일자이며 NVD 기록에서 확인 가능한 CISA SSVC 평가는 악용을 "none", 자동화 가능성을 "no", 기술적 영향을 "total"로 제시한다. CISA의 알려진 악용 취약점(Known Exploited Vulnerabilities) 목록은 2026년 10월 20일 개정판에서 CVE-2026-90970을 수록하지 않았으며, 이는 내가 직접 확인했다. FIRST의 EPSS 모델은 2026년 10월 21일 기준 향후 30일 내 악용 확률을 0.94퍼센트로 산정했다 — 낮지만 0은 아니다.
• 확인되지 않음:자체 호스팅 게이트웨이가 몇 개 존재하는지, 몇 개가 노출되었는지, 또는 패치 전에 공격을 받았는지 여부. 이 기록의 어떤 출처도 개수를 제시하지 않으며, GitLab의 권고문은 탐지 방법을 제공하지 않습니다.

영향받는 범위 및 수정 사항이 나열되지 않은 버전
버전 산수는 세 개의 수정 릴리스가 시사하는 것보다 덜 깔끔하다. 영향을 받는 범위는 18.1.6에서 시작하며, 19.2.4 미만의 어느 계열에도 수정 릴리스는 게시되지 않았다. 따라서 18.1.6부터 19.1 계열까지의 모든 게이트웨이는 패치 버전이 명시되지 않은 채 명시된 영향 범위 안에 들어간다. The Hacker News는 같은 결과와 그에 뒤따르는 질문들을 지적한다. GitLab의 설치 문서는 관리자에게 자신의 GitLab 마이너 버전과 일치하는 버전의 게이트웨이 이미지를 실행하라고 안내하는데, 권고문은 19.2.4 게이트웨이가 GitLab 19.1 이하에서 작동하는지도, 이전 계열에 대한 수정이 계획되어 있는지도 밝히지 않는다. The Hacker News가 언급하듯 GitLab의 지원 버전 정책은 현재 19.4, 19.3, 19.2를 나열한다 — 수정을 받은 바로 그 세 계열이다.
해결 방법은 패치가 아니라 컨테이너 교체입니다: 게이트웨이는 자체 Docker 이미지 또는 Helm 차트로 제공됩니다. GitLab의 설치 가이드에는 실행 중인 컨테이너를 중지하고 제거한 다음, self-hosted-vX.Y.Z-ee 태그가 붙은 새 이미지를 가져와 환경 변수를 그대로 유지한 채 다시 시작하는 방법이 설명되어 있습니다. Helm 배포에서는 차트의 image 필드에 태그를 설정합니다. 보안 권고문도 설치 가이드도 공격받은 게이트웨이와 정상 게이트웨이를 구분할 수 있는 서명이나 지표를 제공하지 않습니다.

8개월 전에 나타난 같은 종류의 버그
GitLab이 AI Gateway의 템플릿 인젝션에 9.9점을 부여한 것이 이번이 처음은 아닙니다. 2026년 2월 6일 GitLab은 AI Gateway 18.6.2, 18.7.1, 18.8.1을 출시했는데, 이는 CVE-2026-1868에 대한 것이었으며, 해당 권고문에서는 이를 "안전하지 않은 템플릿 확장 문제"로 설명하면서 Duo Workflow Service 구성 요소가 "조작된 Duo Agent Platform Flow 정의를 통해 사용자 제공 데이터를 안전하지 않게 템플릿 확장"하는 데 취약하여 게이트웨이에서 서비스 거부 공격이나 코드 실행에 악용될 수 있다고 밝혔습니다. CVSS 벡터는 10월의 것과 글자 하나까지 동일하며, CWE도 마찬가지입니다. 신고자는 달랐습니다. 그것은 GitLab 팀원 Joern Schneeweisz가 내부에서 발견했습니다.
10월 권고안은 2월 권고안을 언급하지 않으며, The Hacker News는 이를 명시적으로 말한다. 두 권고안이 동일한 근본 원인을 공유하는지, 효과를 발휘하지 못한 수정 조치를 공유하는지, 아니면 단지 언어와 위협 모델만 공유하는지는 두 공개 문서 어느 것도 답하지 않는다. 기록에 남은 사실은 AI 미들웨어 구성 요소의 템플릿 엔진이 이제 같은 해에 동일한 점수로 두 건의 치명적 명령 실행 권고안을 산출했으며, 두 번째 것은 외부 연구자가 찾아야 했다는 점이다.
무엇이 바뀌었고, 운영자는 무엇을 결정해야 하는가
구체적인 변경 사항은 이미지 태그 세 개와 직접 연락 한 차례입니다. GitLab은 게시 전에 자체 호스팅 게이트웨이 고객에게 연락했다고 밝혔으며, 권고문은 수정된 이미지와 같은 날 함께 공개되었습니다. 그 외의 모든 대상, 즉 GitLab.com, GitLab Dedicated, 그리고 GitLab 호스팅 게이트웨이를 가리키는 자체 관리 인스턴스의 경우 수정 사항은 이미 서버 측에서 적용되었으며 GitLab의 설명에 따르면 별도로 필요한 조치는 없었습니다.
자체 호스팅 운영자에게 이 결정은 일반적인 패치 주기보다 더 좁고 덜 편안하다. 즉시 이전할 수 없는 게이트웨이에는 우회 방법이 없다. 호스트가 사전에 침해되었는지 확인할 수 있는 공개된 방법이 없으므로, 유일한 사후 선택지는 일반적인 것뿐이다. 컨테이너를 무결성이 입증되지 않은 시스템으로 간주하고 정상 동작을 벗어난 실행 흔적을 찾는 것이다. 그리고 18.x 또는 19.1을 사용하는 게이트웨이의 경우, 권고문은 대상 버전을 전혀 명시하지 않는다. 이는 The Hacker News가 보도하고 GitLab의 공지는 다루지 않은 누락이다.
아카이브 자체의 분류는 의도적으로 공급업체의 분류보다 좁다. 이 항목은 취약점으로 기록되며, 신뢰도 A에 출처들도 일치하고 논란도 없으며, 실제 피해는 기록되지 않았고, 심각도 필드는 GitLab과 NVD의 "critical"과 대비되는 "high"이다. 이는 서로 다른 질문에 대한 답이다. 점수는 그 결함이 무엇을 허용할 수 있는지를 설명하고, 아카이브의 등급은 실제로 무슨 일이 있었던 것으로 알려져 있는지를 설명한다. 공개 기록상 아무 일도 일어나지 않았다. 악용도, 피해자도, 사고 보고서도 없었다. 이 항목의 가치는 CVE 번호와 수정된 버전과 함께, 프롬프트 템플릿이 어떻게 엔터프라이즈 AI 기능이 의존하는 미들웨어에서 명령줄이 되었는지를 정확히 문서화한다는 데 있다.

