
Um fluxo de assinatura em GitHub Actions baixou a versão maliciosa 1.14.1 do Axios, expondo material de certificação usado em aplicativos para macOS, embora não haja evidência de alteração de software ou acesso a dados de usuários.
| Componente | Fluxo de GitHub Actions usado na assinatura de aplicativos macOS da OpenAI e pacote npm axios. |
| Vetor | A conta npm do mantenedor do Axios foi sequestrada para publicar versões envenenadas 1.14.1 e 0.30.4, com dependência maliciosa plain-crypto-js; o workflow de assinatura baixou e executou axios 1.14.1 em 31 de março. |
| Impacto | O workflow tinha acesso a certificado e material de notarização usados para assinar ChatGPT Desktop, Codex, Codex CLI e Atlas; a análise concluiu que o certificado provavelmente não foi exfiltrado, e não houve evidência de acesso a dados de usuários, comprometimento de sistemas internos, propriedade intelectual ou alteração de software. |
| Prioridade | Atualizar aplicativos macOS para versões assinadas com o novo certificado antes de 8 de maio de 2026 e revisar pipelines de CI/CD que possam ter executado versões comprometidas de dependências. |
| Versões | Versões maliciosas do Axios citadas no contexto: 1.14.1 e 0.30.4. |
| Artefatos | Dependência maliciosa plain-crypto-js e backdoor multiplataforma WAVESHAPER.V2 associados ao comprometimento do Axios. |
| Mitigação | Revogação e rotação do certificado, bloqueio de novas notarizações com o certificado antigo e coordenação com a Apple para impedir novo uso do material anterior. |
A OpenAI iniciou a revogação e a rotação de um certificado usado para assinar seus aplicativos para macOS depois que um workflow de GitHub Actions, integrante do processo de assinatura, baixou e executou a versão 1.14.1 do pacote npm axios em 31 de março. Essa versão estava entre as publicações maliciosas introduzidas durante um incidente de cadeia de suprimentos no Axios. O fluxo afetado tinha acesso a certificado e material de notarização usados para validar aplicativos como ChatGPT Desktop, Codex, Codex CLI e Atlas no ecossistema macOS. A medida não decorre de uma confirmação pública de exfiltração do certificado, mas de uma decisão de tratar o material como potencialmente comprometido devido à sensibilidade do processo de assinatura.
A análise descrita no contexto indica que não houve evidência de acesso a dados de usuários, comprometimento de sistemas internos, exposição de propriedade intelectual ou alteração do software distribuído. O ponto crítico é a posição do workflow dentro da esteira de publicação: qualquer ambiente de CI/CD que assina binários precisa ser tratado como zona de alto valor, porque credenciais, certificados e artefatos de notarização podem permitir que código não autorizado pareça legítimo para o sistema operacional. A avaliação também aponta fatores que teriam reduzido a probabilidade de exfiltração bem-sucedida, incluindo o momento da execução do payload, a injeção do certificado no job, a sequência interna da tarefa e outras barreiras operacionais.
O comprometimento do Axios começou com o sequestro da conta npm do mantenedor, permitindo a publicação das versões envenenadas 1.14.1 e 0.30.4. Essas versões incluíam a dependência maliciosa plain-crypto-js, usada como etapa intermediária para implantar o backdoor multiplataforma WAVESHAPER.V2. O artefato foi descrito como capaz de infectar ambientes Windows, macOS e Linux, o que amplia o risco para pipelines heterogêneos, estáções de desenvolvimento e servidores de automação. No caso da OpenAI, o ponto de contato confirmado foi a execução de axios 1.14.1 dentro de um workflow de assinatura de aplicativos macOS, não uma evidência de alteração nos aplicativos finais.
A sensibilidade do caso está no acoplamento entre dependências de código aberto e tarefas privilegiadas de CI/CD. Um pacote consumido automaticamente por um workflow pode executar código no contexto do runner, e esse contexto pode conter segredos temporários, tokens, certificados, permissões de publicação ou acesso a artefatos. Quando a etapa em questão é assinatura e notarização para macOS, o risco condicionado é que um certificado seja usado por um operador não autorizado para assinar código próprio e fazê-lo parecer software legítimo. O contexto informa que novas notarizações com o certificado antigo foram interrompidas; portanto, software novo assinado por um terceiro com o certificado anterior deve ser bloqueado por padrão pelas proteções do macOS, salvo desvio explícito pelo usuário.
A revogação tem efeito operacional direto. Versões antigas dos aplicativos macOS assinadas com o certificado anterior deixarão de receber atualizações e suporte a partir de 8 de maio de 2026. Aplicativos assinados com o certificado antigo também serão bloqueados por proteções de segurança do macOS por padrão, impedindo download ou execução em condições normais. Essa janela de transição existe para reduzir interrupções e permitir que usuários migrem para versões assinadas com o novo certificado. Para equipes de segurança, o evento mostra que o impacto de um pacote npm comprometido não depende apenas da biblioteca em si, mas do local em que ela é executada e dos segredos disponíveis naquele ponto da esteira.
A superfície diretamente descrita envolve o workflow de GitHub Actions usado na assinatura de aplicativos macOS da OpenAI e os artefatos de certificação associados a ChatGPT Desktop, Codex, Codex CLI e Atlas. O contexto não sustenta afirmar que os aplicativos foram alterados, que dados de usuários foram acessados ou que sistemas internos foram comprometidos. A exposição relevante é o contato entre um pacote npm malicioso e um ambiente de automação com acesso a material de assinatura. Em organizações que usam GitHub Actions, npm e rotinas de assinatura, esse padrão deve ser tratado como um sinal de risco estrutural, especialmente quando dependências são resolvidas sem pinagem rígida, atraso mínimo de adoção ou validação independente.
O incidente também se insere em uma sequência maior de ataques de cadeia de suprimentos contra o ecossistema de código aberto em março. Além do Axios, o contexto descreve um ataque contra o Trivy, scanner de vulnerabilidades mantido pela Aqua Security, com efeitos em múltiplos ecossistemas e bibliotecas dependentes. Nessa segunda frente, o grupo TeamPCP, também tratado como UNC6780, teria usado o stealer SANDCLOCK para extrair dados sensíveis de ambientes de desenvolvimento, depois aproveitando credenciais para comprometer pacotes npm e publicar o worm CanisterWorm. O caso reforça que ferramentas de segurança, ações de CI e bibliotecas amplamente reutilizadas são alvos valiosos porque costumam executar com permissões elevadas e acesso a segredos organizacionais.
- Aplicativos macOS citados no processo de assinatura: ChatGPT Desktop, Codex, Codex CLI e Atlas.
- Pacote npm afetado no caso principal:
axios, com versões maliciosas1.14.1e0.30.4. - Dependência maliciosa associada ao Axios:
plain-crypto-js, com implantação do backdoorWAVESHAPER.V2. - Data operacional relevante: suporte e atualizações para versões antigas assinadas com o certificado anterior cessam em 8 de maio de 2026.
A investigação defensiva deve começar pelos registros de CI/CD, não pelos endpoints de usuários finais. O evento confirmado ocorreu em um workflow de GitHub Actions, portanto a telemetria mais importante inclui execução de jobs em 31 de março, resolução de dependências npm, instalação de axios 1.14.1, presença de plain-crypto-js na árvore de dependências e qualquer comportamento de rede inesperado durante jobs com acesso a segredos. Como a análise descrita indica que a exfiltração do certificado foi improvável por causa da sequência do job e do momento da injeção do certificado, a revisão deve reconstruir a linha do tempo: quando o pacote foi executado, quando o certificado ficou disponível, quais variáveis ou arquivos existiam no runner e quais destinos externos foram contatados.
Em ambientes próprios, equipes devem procurar sinais de execução de versões comprometidas do Axios em runners, máquinas de build, estáções de desenvolvimento e caches de pacotes. A presença de uma versão maliciosa em um lockfile não prova execução, mas indica necessidade de verificar logs de instalação, hashes de artefatos produzidos, variáveis de ambiente acessíveis no período e eventos de publicação subsequentes. Para organizações que consomem GitHub Actions de terceiros ou executam ferramentas de segurança em pipelines, o mesmo raciocínio vale para o caso Trivy: ações comprometidas podem herdar permissões amplas por desenho, especialmente quando rodam em projetos com segredos de cloud, tokens de repositório, credenciais de registro, chaves de SaaS ou permissões de release.
A telemetria de identidade e nuvem também merece revisão quando houver evidência de execução de dependências comprometidas em pipeline privilegiado. O contexto descreve que, em campanhas relacionadas ao Trivy, credenciais roubadas foram validadas rapidamente, seguidas por descoberta em ambientes SaaS e cloud, exfiltração adicional e tentativas de movimentação lateral. Esse comportamento não deve ser atribuído automaticamente ao caso da OpenAI, mas serve como padrão de busca para organizações que identificarem execução real de artefatos comprometidos em seus próprios ambientes. A ausência de payload reproduzível público no relatório operacional não reduz a importância de correlacionar logs de build, auditoria de identidade e eventos de acesso a segredos.
- Execuções de GitHub Actions que instalaram
axios1.14.1ou0.30.4durante a janela de comprometimento. - Aparecimento de
plain-crypto-jsem árvores de dependência, caches npm, lockfiles ou diretórios temporários de runners. - Acesso a certificados, chaves de assinatura, tokens de notarização ou variáveis sensíveis durante jobs que também executaram dependências comprometidas.
- Conexões de rede incomuns originadas de runners de CI/CD durante etapas de instalação, build, assinatura ou publicação.
- Uso subsequente de credenciais de cloud, SaaS, npm, PyPI ou repositório a partir de origens, horários ou agentes não compatíveis com o padrão normal.
A resposta imediata para o caso descrito foi tratar o certificado antigo como comprometido, revogá-lo, rotacioná-lo e impedir novas notarizações com esse material. Em ambientes semelhantes, a ordem defensiva deve combinar contenção de credenciais, reconstrução de artefatos e endurecimento da esteira. Certificados e tokens expostos a runners que executaram dependências comprometidas devem ser substituídos quando houver risco plausível de acesso. Builds produzidos durante a janela suspeita precisam ser revalidados a partir de origem limpa, com dependências conhecidas e ambiente de execução controlado. A atualização dos aplicativos macOS para versões assinadas com o novo certificado deve ocorrer antes do marco de 8 de maio de 2026 para evitar bloqueios e perda de suporte.
A prevenção exige reduzir confiança implícita em dependências e automações. O contexto destaca controles como idade mínima de release para atrasar a adoção automática de novas versões, referências fixas no lugar de identificadores mutáveis, credenciais curtas e escopadas, ambientes de execução isolados e uso cuidadoso de gatilhos de GitHub Actions que concedem permissões elevadas. Em pipelines de assinatura, a prática defensiva mais importante é separar instalação de dependências, build, acesso a segredos e assinatura em etapas com permissões mínimas e janelas curtas. Quanto menor o período em que um runner combina código recém-baixado e material sensível, menor a chance de uma dependência maliciosa alcançar o segredo de maior valor.
Para organizações que usam npm, PyPI, scanners de segurança, ações de terceiros ou automação de publicação, o incidente deve levar a uma revisão de governança técnica. Lockfiles devem ser auditados, caches precisam ser limpos quando houver execução suspeita, segredos presentes em CI/CD devem ser inventariados, e permissões de workflows devem ser reduzidas ao necessário. Tokens de registro, credenciais de cloud e chaves de SaaS vinculados a pipelines afetados precisam ser rotacionados quando houver evidência de execução maliciosa em contexto privilegiado. A validação final deve confirmar que novos builds usam versões confiáveis, que os certificados antigos não podem produzir software aceito por padrão e que alertas de identidade, rede e repositório cobrem tentativas de reuso de credenciais obtidas durante incidentes de cadeia de suprimentos.
- Atualizar ChatGPT Desktop, Codex, Codex CLI e Atlas para versões macOS assinadas com o novo certificado quando aplicável.
- Rotacionar certificados, tokens e segredos que tenham ficado disponíveis em runners com execução de dependências comprometidas.
- Auditar lockfiles, caches e logs de instalação para
axios1.14.1,axios0.30.4eplain-crypto-js. - Aplicar idade mínima de release e pinagem de referências para reduzir adoção automática de versões recém-publicadas.
- Separar etapas de build, instalação, assinatura e publicação com permissões mínimas e credenciais de curta duração.
- Monitorar uso anômalo de credenciais de cloud, SaaS, repositórios e registros de pacotes após qualquer execução confirmada de artefato comprometido.
0 Comentários