Atacantes comprometeram o processo de publicação legítimo do projeto AsyncAPI para injetar o malware Miasma em pacotes npm confiáveis, afetando cerca de 2,9 milhões de downloads semanais combinados e colocando em risco sistemas de desenvolvimento e ambientes de construção automatizados.
A empresa de segurança Cato Networks identificou a atividade por meio de monitoramento de inteligência sobre cadeia de suprimentos e compartilhou as descobertas em um relatório. Os pesquisadores descobriram que os invasores utilizaram um caminho de publicação confiável para distribuir uma carga Node.js associada ao Miasma. O ataque começou com uma configuração vulnerável do GitHub Actions que permitiu que conteúdo de pull request não confiável interagisse com um contexto de workflow privilegiado, concedendo ao atacante acesso a uma identidade de automação do AsyncAPI para fazer alterações não autorizadas no repositório. As alterações maliciosas foram colocadas em um branch vinculado ao processo de lançamento, fazendo com que a automação de publicação do próprio AsyncAPI liberasse os pacotes alterados, tornando-os aparentemente legítimos.
Miasma opera com execução furtiva
O JavaScript injetado não dependia de scripts de ciclo de vida comuns do npm, como o postinstall. Em vez disso, ele era executado quando um módulo afetado era importado, permanecendo inativo após a instalação e ativando-se posteriormente durante uma construção, execução de aplicação ou job de CI/CD. O código de primeiro estágio iniciava um processo Node.js destacado e baixava uma carga de segundo estágio criptografada do IPFS. Os pesquisadores afirmaram que a carga poderia manter acesso, executar comandos remotos, gerenciar arquivos, atualizar-se e comunicar-se com infraestrutura controlada pelo atacante. O Miasma também usou um contrato Ethereum como fonte alternativa para configuração de comando e controle.
Recomendações
Organizações devem verificar manifests, lockfiles, caches e artefatos de build para as versões afetadas, determinar se foram importados ou executados, revisar conexões de saída e logs de repositório, rotacionar credenciais acessíveis e restringir workflows privilegiados que usam pull_request_target.






