A segurança da cadeia de suprimentos digital voltou a ser destaque no cenário global de cibersegurança após a descoberta de uma campanha massiva que comprometeu 16 pacotes do ecossistema Gluestack no NPM, somando mais de 960 mil downloads semanais. A Dolutech acompanha atentamente o incidente e traz neste artigo uma análise completa da ameaça, seus impactos e as lições que desenvolvedores e empresas precisam aprender para fortalecer suas rotinas de proteção.
O que aconteceu?
Em 6 de junho de 2025, pesquisadores da Aikido Security detectaram uma atividade maliciosa no pacote react-native-aria/focus
, parte do conjunto de bibliotecas mantido pelo projeto Gluestack. Em questão de horas, 16 pacotes diferentes foram atualizados com código malicioso, afetando diretamente projetos que utilizam bibliotecas para interfaces em React Native.
Entre os pacotes comprometidos estão:
Pacote | Versão | Downloads Semanais |
---|---|---|
react-native-aria/button | 0.2.11 | 51.000 |
react-native-aria/checkbox | 0.2.11 | 81.000 |
react-native-aria/focus | 0.2.10 | 100.000 |
react-native-aria/interactions | 0.2.17 | 125.000 |
react-native-aria/utils | 0.2.13 | 120.000 |
gluestack-ui/utils | 0.1.17 | 55.000 |
… | … | … |
Os pacotes pertencem ao ecossistema
react-native-aria
, amplamente utilizado por desenvolvedores em aplicações móveis e interfaces acessíveis.Análise do Código Malicioso
O código malicioso foi inserido de forma ofuscada no final do arquivo
lib/index.js
, escondido entre dezenas de espaços para dificultar a identificação por ferramentas automáticas ou inspeções visuais rápidas na interface web do NPM.O que o malware faz?
O código injetado funciona como um Trojan de Acesso Remoto (RAT), com capacidade de:
- Estabelecer conexão com um servidor C2 (Command and Control).
- Executar comandos shell arbitrários.
- Realizar upload de arquivos do sistema comprometido.
- Navegar em diretórios locais.
- Substituir variáveis de ambiente do Windows para sequestrar comandos do Python (
PATH hijacking
).- Exfiltrar dados sensíveis.
Comandos identificados:
cd
– altera diretório.ss_dir
– redefine caminho do script.ss_fcd:<path>
– força alteração de diretório.ss_upf:F,D
– envia arquivo.ss_upd:d,dest
– envia diretório completo.ss_stop
– interrompe processos.- Qualquer outro comando é interpretado como shell via
child_process.exec()
.
Riscos Reais de um Ataque à Cadeia de Suprimentos
Um ataque deste tipo é particularmente perigoso por três razões:
- Confiança Implícita: Desenvolvedores confiam que os pacotes NPM sejam legítimos e seguros.
- Propagação Rápida: Qualquer build automatizado que utilize os pacotes comprometidos pode estar propagando o trojan sem saber.
- Impacto Amplificado: Com quase 1 milhão de downloads semanais, as chances de que o código tenha sido executado em ambientes de produção são reais e preocupantes.
A Gluestack se pronunciou?
Até o momento da publicação deste artigo, nenhuma resposta oficial da Gluestack foi divulgada, mesmo após notificações feitas publicamente no GitHub dos projetos. A ausência de posicionamento imediato revela uma lacuna grave em resposta a incidentes, justamente o tipo de falha que um ataque à cadeia de suprimentos visa explorar.
Ações Tomadas
A Aikido Security notificou o NPM imediatamente, que iniciou o processo de verificação e remoção dos pacotes. Contudo, como sabemos, o processo de verificação no repositório pode levar vários dias, deixando a janela de exploração ainda aberta para quem não monitora constantemente as dependências de seus projetos.
O ataque foi atribuído ao mesmo grupo que recentemente comprometeu os pacotes:
biatec-avm-gas-station
cputil-node
lfwfinance/sdk
lfwfinance/sdk-dev
Lições e Recomendações
1. Monitore dependências ativamente
Utilize ferramentas como:
- Snyk (https://snyk.io)
- Dependabot (GitHub)
- OWASP Dependency-Check (https://owasp.org)
2. Configure repositórios privados e auditáveis
Evite depender exclusivamente do NPM público em pipelines críticos. Repositórios internos com revisão manual de bibliotecas são uma barreira extra.
3. Use package-lock.json
Essa prática impede que versões atualizadas automaticamente incluam alterações indesejadas.
4. Valide versões antes de atualizar
Verifique commits e alterações de pacotes ao atualizar bibliotecas. Ferramentas como npm diff ajudam.
5. Implemente políticas de segurança para builds
Pipeline seguro deve ter:
- Verificação de hashes.
- Isolamento de ambientes de build.
- Monitoramento de tráfego e alertas comportamentais.
Conclusão
O incidente envolvendo o Gluestack é mais um alerta severo sobre os perigos ocultos na cadeia de suprimentos de software. A confiança cega em pacotes públicos, mesmo os populares, pode ser uma porta de entrada para compromissos graves, exfiltração de dados e espionagem corporativa.
A Dolutech recomenda atenção máxima a todas as dependências utilizadas em projetos, especialmente em ambientes de produção, além da implementação de políticas de DevSecOps robustas. Atualize seus pacotes imediatamente, monitore comportamentos anômalos e revise qualquer build feito a partir de 6 de junho com os pacotes listados neste artigo.
A cibersegurança não é mais uma camada: é o alicerce do desenvolvimento moderno.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.