Em 22 de maio de 2026, detectamos um ataque ativo à cadeia de suprimentos contra o Laravel-Lang. Nós registramos um relatório com os mantenedores imediatamente. O invasor publicou tags de versão maliciosas em três repositórios amplamente utilizados, injetando código de roubo de credenciais que é carregado automaticamente via recurso de autoloader do composer.
O que torna isso particularmente sorrateiro é que o código malicioso nunca foi commitado nos repositórios oficiais. O GitHub permite que as tags de versão apontem para commits de um fork do mesmo repositório. O invasor explorou isso para criar tags que apontavam para commits em um fork malicioso que eles controlavam.
233 versões estão atualmente comprometidas em:
- laravel-lang/lang (7.8k estrelas)
- laravel-lang/attributes
- laravel-lang/http-statuses
Também relatamos o ataque ao Packagist, que respondeu imediatamente removendo as versões maliciosas e deslistando temporariamente os pacotes afetados para evitar novas instalações.
Estágio 1: O dropper
O invasor introduziu um arquivo chamado src/helpers.php nas tags de versão afetadas. Superficialmente, parece um helper de localização Laravel rotineiro, definindo duas funções inofensivas: laravel_lang_locale() e laravel_lang_fallback(). Abaixo dessas funções, o trabalho real começa.
Um bloco de código autoexecutável é executado uma vez em cada máquina que infecta. Ele faz o fingerprint do host usando um hash do caminho do arquivo, hostname e inode, e então escreve um arquivo marcador no diretório temporário do sistema para que seja executado apenas uma vez. O domínio C2 está oculto dentro de um array de inteiros decodificado em tempo de execução para evadir scanners estáticos. Ele resolve para flipboxstudio[.]info.
O dropper então busca um payload de flipboxstudio[.]info/payload usando file_get_contents com um fallback curl, ambos com verificação SSL desabilitada. No Windows, ele solta um launcher .vbs e executa o payload silenciosamente via cscript. No Linux e macOS, ele executa o payload em segundo plano via exec().
Estágio 2: O stealer
O payload buscado é um stealer de credenciais PHP de aproximadamente 5.900 linhas, organizado em quinze módulos coletores especializados. Após coletar tudo o que pode encontrar, ele criptografa os resultados com AES-256 e os envia para flipboxstudio[.]info/exfil. Ele então se autoexclui do disco para limitar as evidências forenses.
O que ele rouba
Credenciais da Cloud
- Chaves de acesso AWS, chaves secretas e tokens de sessão (do ambiente,
~/.aws/credentialse metadados de instâncias EC2 ativas) - Credenciais padrão de aplicação GCP, bancos de dados de tokens de acesso e todas as configurações CLI nomeadas
- Tokens de acesso do Azure, cache MSAL e perfis de service principal
- Tokens de autenticação DigitalOcean, Heroku, Vercel, Netlify, Railway e Fly.io
Secrets de infraestrutura
- Todos os arquivos kubeconfig incluindo
/etc/kubernetes/admin.conf - Tokens do HashiCorp Vault
- Configurações de repositório Helm
- Docker
config.json
Credenciais de desenvolvedor
- Chaves privadas SSH
- Todos
.git-credentialse.gitconfigfiles .netrc,.npmrc,.yarnrc,.pypirc,.gem/credentials,.composer/auth.json- Tokens de autenticação GitHub CLI, GitLab CLI e Hub CLI
- Arquivos de histórico do shell (bash, zsh, psql, mysql, python, node)
- Todos
.envarquivos e arquivos de configuração encontrados ao escanear recursivamente o diretório de trabalho (wp-config.php, settings.py, docker-compose.yml, secrets.yaml e muito mais)
Navegadores e gerenciadores de senhas
- Senhas salvas de 17 navegadores baseados em Chromium: Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, Chromium, Yandex e muito mais. No Windows, um auxiliar empacotado
.exeé usado para descriptografar o banco de dados de login do Chrome protegido por DPAPI - Firefox e Thunderbird
logins.jsonekey4.dbem todos os perfis - KeePass
.kdbxe.kdbarquivos de banco de dados - arquivos de cofre local do 1Password e Bitwarden
carteiras de criptomoedas
- Arquivos de carteira Bitcoin, Ethereum, Monero, Litecoin, Dash, Dogecoin e Zcash
- Carteiras Electrum, Exodus, Atomic, Ledger Live, Trezor, Wasabi e Sparrow
- Carteiras de extensão de navegador por ID de extensão: MetaMask, Phantom, Trust Wallet, Ronin, Keplr, Solflare e Rabby
Específico do Windows
- Entradas do Gerenciador de Credenciais e do Cofre do Windows
- Sessões salvas do PuTTY e WinSCP (senhas do WinSCP são ativamente descriptografadas)
.rdpArquivos da Área de Trabalho, Documentos e Downloads- Perfis de registro do Outlook, inventário de arquivos OST/PST e entradas do Gerenciador de Credenciais para serviços Microsoft
Plataformas de comunicação
- Tokens do Slack
- Tokens de bot do Discord
- Tokens de bot do Telegram
Configs de VPN
- Arquivos de configuração e credenciais extraídas para NordVPN, ExpressVPN, ProtonVPN, CyberGhost, Private Internet Access, Windscribe, Mullvad, Surfshark, WireGuard e OpenVPN
Como a Aikido detecta isso
Se você é um usuário Aikido, verifique seu feed central e filtre por problemas de malware. Isso aparecerá como um problema crítico 100/100. O Aikido reanalisa todas as noites, mas recomendamos acionar uma reanálise manual agora.
Se você ainda não é um usuário Aikido, pode criar uma conta e conectar seus repositórios. Nossa cobertura de malware está incluída no plano gratuito, não é necessário cartão de crédito.
Para uma cobertura mais ampla em toda a sua equipe, o Endpoint Protection do Aikido oferece visibilidade e controle sobre os pacotes de software instalados nos dispositivos da sua equipe. Ele abrange extensões de navegador, bibliotecas de código, plugins de IDE e dependências de build, tudo em um só lugar. Impeça o malware antes que ele seja instalado.
Para proteção futura, considere Aikido Safe Chain (open source). O Safe Chain se integra ao seu fluxo de trabalho existente, interceptando comandos npm, npx, yarn, pnpm e pnpx e verificando pacotes contra Aikido Intel antes da instalação.
Indicadores de Compromisso
Rede
flipboxstudio.info(domínio C2)flipboxstudio.info/payload(busca do dropper)flipboxstudio.info/exfil(endpoint de exfiltração)
Arquivos e caminhos
<tmp>/.laravel_locale/<md5_hash>(marcador de infecção)<tmp>/.laravel_locale/<12 random hex chars>.php(stealer implantado)<tmp>/.laravel_locale/<8 random hex chars>.vbs(launcher do Windows)

