GitLab은 8월 26일 패치 릴리스 19.3.1을 배포했다. 이번 수정 사항 가운데 하나는 CVE-2026-18252로, "Duo Claude AI agent impacts GitLab EE"에 대한 "신뢰할 수 없는 통제 영역의 기능 포함(Inclusion of Functionality from Untrusted Control Sphere) 문제"로 설명된다. 이는 이번 주 공개된 AI 에이전트 취약점 가운데 가장 시사점이 크지만, 잘못 설명될 가능성이 크다.
실제로 무엇이 잘못됐나
GitLab의 자체 설명은 이렇다. 회사는 "특정 조건에서 개발자 역할 권한을 가진 인증된 사용자가 Claude 에이전트가 사용자가 통제하는 소스의 구성 정보를 처리한 탓에 CI 맥락에서 임의 명령을 실행할 수 있었던 문제를 해결했다"고 밝혔다. 에이전트는 개발자가 쓸 수 있는 어딘가에서 구성 정보를 읽었다. 그 구성 정보가 시키는 대로, 에이전트는 CI 내부에서 CI의 자격 증명으로 실행했다.
일반적인 프레이밍이 무엇을 잘못 짚나
LLM과 명령 실행이 함께 나오면 무엇이든 프롬프트 주입이나 Jailbreak로 분류되곤 한다. 즉, 모델이 가드레일을 설득당해 벗어난 것으로 보는 것이다. 그러나 이번 사례는 둘 다 아니다. 이는 신뢰 경계 설정 실패라는 전형적인 버그로, 신뢰할 수 없는 경로에서 빌드 스크립트를 읽는 것과 같은 결함 유형이며, 해당 구성을 읽는 구성 요소에 모델이 전혀 없더라도 동일한 형태로 존재했을 것이다. 이 구분은 대응에 중요하다. 프롬프트 주입은 확률적이고 불완전한 모델 수준 방어로 완화되지만, 이번 문제는 쓰기 가능한 위치에서 구성을 읽지 않으면 해결된다. GitLab은 두 번째 방식으로 이를 수정했으며, 그것이 올바른 방식이다. 이를 AI 안전성 실패로 부르면 결정적인 수정 방식이 본질이 흐려진다.
누가 점수를 매겼고, 왜 주목할 만한가
평가는 벡터 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N 기준 7.3 High다. GitLab은 자체 CNA이므로, 이 점수는 기술적 세부 사항이 아직 비공개인 상태에서 공개된 자사 결함에 대한 회사의 판단이다. 벡터는 내부적으로 일관된다. 낮은 권한이 필요하고, 사용자 상호작용이 필요하며, 가용성 영향은 없다. 이를 잘못된 것으로 의심할 이유도 없다. 그러나 독립 분석가는 GitLab이 이 이슈를 공개할 때까지, 관례적으로 패치 후 약 30일이 지나기 전에는 이를 확인할 수 없다. 그때까지 널리 배포된 CI 플랫폼의 에이전트 취약점 심각도는 전적으로 해당 플랫폼의 말에 달려 있다.
지금 무엇을 해야 하나
영향을 받는 버전은 GitLab EE 18.9 이전 19.1.7, 19.2 이전 19.2.5, 19.3 이전 19.3.1이다. 이 취약점은 GitLab의 HackerOne 프로그램을 통해 보고됐다. 전제 조건은 개발자 역할 계정인데, 대부분의 조직에서 이는 높은 허들이 아니다. 코드를 작성하는 사람에게 부여되는 표준 권한 수준이기 때문이다. Claude 에이전트를 사용하는 Duo가 올라간 자체 관리형 인스턴스는 이번 사안을 릴리스의 최우선 항목으로 다뤄야 한다.
