Uma ilustração abstrata gerada sobre um fundo cinza-azulado claro: uma longa faixa horizontal de pipeline, com contornos finos em ardósia escura, atravessa o centro, e um único nó de agente arredondado está sobre ela. A partir da borda esquerda, um fluxo não marcado de pequenos fragmentos irregulares alimenta esse nó através de uma lacuna em seu contorno, em vez de pela entrada rotulada acima dele. A jusante, um aglomerado muito maior de blocos retangulares empilhados fica atrás de uma linha de limite tracejada. Luz ciano delineia o caminho legítimo acima do nó; luz âmbar delineia os fragmentos que entram pela lacuna. Uma grade tênue de planta técnica fica ao fundo. Não aparecem textos, números, pessoas, marcas ou logotipos de organizações. O logotipo da OrcaRouter está composto no canto inferior direito.
AI Safety Incidents

O Agente Claude do Duo do GitLab Poderia Executar Comandos Arbitrários no CI. Ninguém Demonstrou Que Ele Foi Usado.

Autor

Elias Hawthorne

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

A GitLab lançou versões corrigidas em 26 de agosto de 2026 para uma falha de alta gravidade no agente de IA Duo Claude, o agente baseado em Claude que o aviso da GitLab situa num contexto de CI. Rastreada como CVE-2026-18252, a falha permitia que um usuário autenticado com a função Developer executasse comandos arbitrários dentro de um job de CI, porque o agente processava configuração de uma fonte controlada pelo usuário sem validar de onde ela vinha. A GitLab classificou-a como 7,3 na escala CVSS 3.1 e delimitou o intervalo afetado ao GitLab Enterprise Edition: versões 18.9 até, mas não incluindo, 19.1.7; 19.2 até 19.2.5; e 19.3 até 19.3.1. O GitLab.com já estava executando o código corrigido, e os clientes do GitLab Dedicated foram avisados para não tomar nenhuma ação. Nenhuma fonte analisada para este artigo relata que alguém a tenha explorado, e nenhuma prova de conceito foi publicada em fontes abertas. O próprio registro do arquivo para este incidente, com suas classificações de gravidade e confiança, está no Orca AI Incident Archive, ao lado dos registros vizinhos da mesma semana.

O que o comunicado diz, e o que ele omite

O documento principal é curto. As notas de versão de correção do GitLab para 19.3.1, 19.2.5 e 19.1.7, publicadas no mesmo dia, listam sete correções de segurança. A primeira, marcada como Alta, tem o título “Inclusão de funcionalidade a partir de esfera de controle não confiável no agente Duo Claude AI afeta o GitLab EE”, e sua descrição em prosa se resume a uma única frase. O GitLab afirma que “corrigiu um problema que, sob certas condições, um usuário autenticado com permissões de função de desenvolvedor poderia ter executado comandos arbitrários em um contexto de CI, devido ao agente Claude processar configuração de uma fonte controlada pelo usuário”. Essa é toda a descrição técnica publicada pelo fornecedor.

O registro CVE, atribuído pelo próprio GitLab, acrescenta estrutura em vez de substância. Ele classifica a fraqueza como CWE-829, repete os intervalos afetados e a pontuação CVSS 7.3, e registra que o identificador foi reservado em 29 de julho de 2026 e publicado em 26 de agosto às 13:36 UTC. O relatório de bug bounty creditado pelo GitLab, o relatório HackerOne 3863650, retornou um 403 para uma requisição não autenticada em 29 de outubro de 2026, portanto seu detalhe técnico não é público, e o item do rastreador que o registro CVE vincula como referência — item de trabalho 607342 do gitlab-org/gitlab — não continha conteúdo legível da issue nessa verificação.

O que o aviso não diz é justamente a parte que um defensor gostaria de saber. Ele não nomeia o recurso do Duo envolvido, o campo de configuração que o agente lê, nem a forma que a fonte controlada pelo usuário assume — seja um arquivo de repositório, uma variável de pipeline, um comentário em issue ou merge request, ou um parâmetro de API. Nenhum desses pontos é mencionado nas notas do GitLab, no registro da CVE ou na cobertura especializada revisada para este artigo. A documentação de produto do GitLab descreve, sim, um caminho do Claude para dentro de CI: agentes externos, que, segundo a documentação, executam um pipeline de CI/CD quando mencionados em uma issue, épico ou merge request, e para os quais existe um exemplo de configuração do Claude Code. Nada do que foi revisado vincula esse caminho à CVE-2026-18252. É contexto para explicar por que um agente Claude tem privilégios de CI, e não o mecanismo da falha.

A mesma documentação é franca sobre a classe de risco. A página de agentes externos do GitLab lista vulnerabilidades de injeção de prompt entre os riscos que os clientes aceitam ao ativar o recurso, e descreve a verificação de prompts de terceiros que implementa como uma mitigação. Essa página não menciona a CVE-2026-18252, e o aviso não é uma descrição dela. Ela mostra, porém, que a entrada não confiável chegando a um agente com acesso ao pipeline é um risco que a própria documentação do GitLab já pede que os clientes aceitem.

A self-built HTML card titled 'The disclosure, in GitLab's terms', badged 'CVE-2026-18252 · published 26 August 2026'. Nine labelled rows read: weakness class, CWE-829 inclusion of functionality from an untrusted control sphere; CVSS per GitLab, 7.3 High on the vector network, low complexity, low privileges, user interaction required, high confidentiality and integrity impact, no availability impact; CVSS per NIST, 8.1 on the same vector with user interaction marked not required; affected, GitLab EE from 18.9 before 19.1.7, 19.2 before 19.2.5, and 19.3 before 19.3.1; fixed, the same dates in versions 19.1.7, 19.2.5 and 19.3.1; reporter, thwin_htet through GitLab's HackerOne programme, report 3863650; hosted instances, GitLab.com already patched, GitLab Dedicated no action required; workaround, none published; exploitation, none reported in any source reviewed. A footer reads 'Sources: GitLab patch release notes for 19.3.1, 19.2.5 and 19.1.7; the CVE-2026-18252 record as stored in NVD; OpenCVE; CERT Sante, 27 August 2026.' The OrcaRouter logo is composited in the bottom-right corner.

O contexto de CI é onde as credenciais ficam.

A frase que carrega a gravidade é "em um contexto de CI". Um job de pipeline não é um sandbox de brinquedo; ele é executado com um token de runner e com quaisquer segredos que o projeto tenha exposto a ele. O Cyber Security News, ao noticiar o patch em 27 de agosto de 2026, lista o que tais jobs normalmente alcançam — código-fonte, artefatos de build, credenciais de implantação, tokens de nuvem e credenciais de repositório de pacotes — e observa que a execução de comandos em um pipeline poderia expor variáveis de CI, alterar artefatos de build, adulterar fluxos de trabalho de release ou alcançar mais profundamente a infraestrutura conectada, dependendo da configuração do runner e do escopo do token. O artigo do GBHackers no mesmo dia usa o mesmo enquadramento. Nenhum dos veículos relata um caso em que isso tenha acontecido.

Essa distinção molda a forma como a falha deve ser interpretada. Trata-se de um bug de execução de comandos em um componente agêntico, e não de uma demonstração de um modelo se comportando mal: o registro descreve uma configuração obtida de uma fonte controlada pelo usuário e o agente agindo com base nela. Nenhuma fonte analisada descreve o exploit como uma injeção de prompt bem-sucedida, e o aviso do GitLab nunca atribui o resultado a um julgamento do modelo. A fraqueza registrada é um código que confia em uma fonte de configuração na qual não deveria confiar — CWE-829, inclusão de funcionalidade de uma esfera de controle não confiável.

Duas pontuações CVSS e uma etapa de interação

O 7,3 do GitLab não é a única pontuação associada ao identificador. No mesmo registro do NVD, a avaliação primária do NIST é 8,1. Os dois vetores são idênticos exceto em um componente: o GitLab marca a interação do usuário como necessária, e o NIST não. Ambas as pontuações estão na faixa Alta, então a diferença prática é menos sobre gravidade do que sobre as condições nas quais a falha é acionada. O CERT Santé, equipe de resposta a emergências computacionais do ministério da saúde francês, publicou um alerta em 27 de agosto de 2026 que segue a leitura do GitLab — 7,3, interação do usuário necessária, e um gatilho descrito como uma interação que desencadeia o processamento da configuração.

Os sinais de exploração estão silenciosos, e cada um deles é uma leitura do registro, e não telemetria. A avaliação SSVC que o papel de coordenador da CISA armazenou na entrada do NVD em 26 de agosto de 2026 registra a exploração como "nenhuma", a automatização como "não" e o impacto técnico como "total". O modelo EPSS da FIRST atribuiu à probabilidade de exploração o valor de 0,00519, um pouco mais de meio por cento, em 28 de outubro de 2026, no 44º percentil das vulnerabilidades pontuadas. O registro do OpenCVE traz o mesmo valor de EPSS e lista a CVE como ausente do catálogo Known Exploited Vulnerabilities da CISA. O alerta do CERT Santé registra "explorada ativamente: não" e acrescenta que não existia prova de conceito em fontes abertas naquela data. Nada disso é evidência de que ninguém tentou; é a ausência de qualquer tentativa registrada.

Pelo menos um agregador, Mallory, divulga uma pontuação de 8,7 para o mesmo identificador. O registro do NVD não contém nenhuma métrica CVSS 4.0 — apenas a 7,3 do GitLab e a 8,1 do NIST —, portanto esse valor não é reproduzível a partir de nenhuma fonte primária revisada e não é utilizado aqui.

O que está estabelecido e o que não está

O arquivo classifica esta entrada com confiança A, não contestada, sem nenhum dano real registrado. Esse grau tem função real aqui: os documentos concordam entre si, e nenhum deles descreve dano. A divisão abaixo é a parte que um resumo de uma linha não consegue carregar.

• Confirmado: uma falha no agente Duo Claude AI permitiu que um perfil Developer autenticado executasse comandos arbitrários em um contexto de CI, porque o agente processou configuração proveniente de uma fonte controlada pelo usuário. O GitLab atribuiu CWE-829 e CVSS 7.3.

• Estabelecido: os intervalos afetados e a correção — 18.9 até 19.1.7, 19.2 até 19.2.5, 19.3 até 19.3.1, corrigido em 26 de agosto de 2026 nas versões 19.1.7, 19.2.5 e 19.3.1. A vulnerabilidade está registrada em relação ao GitLab EE; a mesma versão também corrigiu o CE, para uma falha diferente.

• Estabelecido: o crédito do relator a thwin_htet por meio do programa HackerOne do GitLab, e o status operacional que o GitLab forneceu aos clientes — GitLab.com já corrigido, GitLab Dedicated fora do escopo da ação necessária, instalações autogerenciadas orientadas a atualizar imediatamente.

• Estabelecido: nenhuma exploração foi relatada. A avaliação SSVC da CISA indica que não há nenhuma; o EPSS permaneceu abaixo de 1% até o final de outubro de 2026; a CVE não está no catálogo KEV segundo o OpenCVE; o CERT Santé não registrou exploração ativa no dia seguinte à divulgação.

• Atribuído, não confirmado pelo fornecedor: as descrições de impacto — segredos legíveis, artefatos alteráveis, releases adulteráveis — são o relato da cobertura sobre o que o escopo do token de um job de CI geralmente permite, não uma constatação de que algo disso tenha ocorrido neste caso. A Cyber Security News e a GBHackers ambas as enquadram com "could" e "depending on"; nenhuma delas relata uma ocorrência.

• Não determinado: qual recurso do Duo e qual campo de configuração estavam envolvidos, e qual era de fato a fonte controlada pelo usuário. A declaração do fornecedor não os identifica.

• Não estabelecido: quantas instalações Enterprise autogerenciadas estavam nas faixas afetadas, quantas foram atualizadas após 26 de agosto de 2026, ou se alguma foi atacada. Nenhuma fonte revisada mede a adoção, e o fornecedor não publicou nenhum método de detecção para instâncias corrigidas tardiamente.

• Ainda não estabelecido: o mecanismo técnico. De acordo com a regra de 90 dias do GitLab, a issue torna-se pública por volta do final de novembro de 2026; até lá, o item do tracker vinculado é apenas uma referência a uma explicação que ainda não existe em público.

A generated abstract illustration on a pale grey-blue field: a small outlined account node sits at the lower left, linked upward by a single thin line to a larger rounded agent node, which in turn connects to a rectangular job container outlined in dark slate. Inside the container, a stack of pale rectangular credential blocks is drawn behind a dotted boundary. The connecting line from the agent passes straight through that boundary rather than around it, and a short amber segment marks where it crosses. A faint second line, drawn in light cyan, runs outside the boundary and stops short. A faint blueprint grid sits behind. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

A correção, o tempo de inatividade e a espera de 90 dias

O GitLab lançou as versões 19.3.1, 19.2.5 e 19.1.7 para as edições Community e Enterprise em 26 de agosto de 2026, e afirmou recomendar fortemente que todas as instalações auto-gerenciadas sejam atualizadas para uma dessas versões imediatamente. A parte referente à Community Edition do lançamento é relevante porque outra falha no mesmo lote — CVE-2026-77801, um problema de negação de serviço em pipelines de importação classificado como 6.5 — afeta tanto a CE quanto a EE. A própria CVE-2026-18252 está registrada apenas para a Enterprise Edition.

Não existe solução alternativa do fornecedor. O alerta da CERT Santé regista que não existe nenhuma solução alternativa, e as notas do GitLab não oferecem nenhuma; o único remédio indicado é a atualização. A versão também não é de aplicação direta. Inclui migrações regulares da base de dados nas três versões e migrações pós-implementação nas 19.3.1 e 19.2.5, o que, segundo o GitLab, causará indisponibilidade em instalações de nó único enquanto as migrações são concluídas. Implementações multi-nó podem utilizar o procedimento de atualização sem indisponibilidade do GitLab.

A self-built HTML card titled 'From reserved identifier to public detail', subtitled 'CVE-2026-18252, the dates that are on the record'. Five timeline rows read: 29 July 2026, GitLab reserves the CVE identifier; 26 August 2026 at 13:36 UTC, the CVE is published and 19.3.1, 19.2.5 and 19.1.7 ship with the fix; 27 August 2026, CERT Sante publishes an alert recording no active exploitation and no workaround; 28 October 2026, FIRST's EPSS puts exploitation probability at 0.00519, the 44th percentile; late November 2026, GitLab's 90-day rule expires and the issue detail becomes public. A footer reads 'Sources: CVE-2026-18252 record metadata; GitLab patch release notes, 26 August 2026; CERT Sante alert, 27 August 2026; FIRST EPSS API, read 29 October 2026; GitLab disclosure policy.' The OrcaRouter logo is composited in the bottom-right corner.

As outras seis correções merecem uma olhada, porque uma delas está próxima do tema desta entrada. A CVE-2026-15387, classificada como 4.3 e corrigida nas mesmas três versões, permitia que um usuário autenticado com permissões de função de desenvolvedor influenciasse o ambiente de execução dos jobs de aplicação da Pipeline Execution Policy por meio do tratamento inadequado de dependências de jobs. Duas rotas de função de desenvolvedor para a execução de jobs, uma classificada como Alta e outra como Média, foram fechadas no mesmo patch.

A política de divulgação do GitLab explica por que o mecanismo permanece opaco. As notas de patch afirmam que as issues que detalham cada vulnerabilidade são tornadas públicas no rastreador de issues 90 dias após o lançamento em que foram corrigidas. Contando a partir de 26 de agosto de 2026, isso coloca a análise técnica da CVE-2026-18252 na última semana de novembro de 2026. Até lá, a referência do rastreador no registro da CVE não tem por trás de si nenhuma análise técnica pública que este artigo pudesse ler.

Onde isto se situa em relação à outra falha de agente do GitLab

A GitLab divulgou uma segunda vulnerabilidade separada relacionada a agentes em 2 de outubro de 2026: CVE-2026-90970, com classificação 9,9, no AI Gateway e não no agente de IA Duo Claude, e explorável por meio de um modelo de prompt de fluxo criado maliciosamente, e não por meio da configuração de CI. São dois bugs diferentes, em componentes diferentes, com pontuações diferentes, e o arquivo os mantém como entradas separadas. O que eles têm em comum é a forma — um componente de IA no caminho de entrega agindo sobre configuração que um usuário com menos privilégios pode influenciar — e é por isso que vale a pena ler o de outubro ao lado deste, e não em vez dele.

Para um operador, a decisão é limitada. Verifique a versão: 19.1.7, 19.2.5 e 19.3.1 são as versões corrigidas, e qualquer versão nos três intervalos indicados está afetada. Não há solução alternativa para aplicar entretanto, e até ao final de novembro não existe uma descrição técnica publicada com a qual se possa auditar uma instância corrigida tardiamente. O que existe é um registo no qual ninguém comunicou exploração — o que é uma afirmação sobre a ausência de evidências, não uma garantia do fornecedor de que não ocorreu nenhuma violação.