Aikido

O que é Slopsquatting? O Ataque de Alucinação de Pacotes por IA Já Está Acontecendo

Escrito por
Dania Durnas

Typosquatting, que consiste em registrar uma versão com erro de digitação de um pacote popular e esperar que um desenvolvedor digite e instale acidentalmente o pacote errado, existe há uma década no npm. Não é novidade — o registro possui proteções para isso. 

Então a IA surgiu e mudou tudo novamente. Slopsquatting é o novo sabor de typosquatting, impulsionado pela IA. Em vez de apostar em erros de digitação humanos, os atacantes apostam em alucinações de IA, os nomes de pacotes que os LLMs recomendam com confiança, mas que na verdade não existem. Por um tempo, isso foi tratado como um risco teórico, mas não é mais o caso. As alucinações de IA estão conosco, e os slopsquatters também. 

Neste artigo, veremos como o slopsquatting funciona, o que os pesquisadores estão encontrando no mundo real agora e o que você pode realmente fazer a respeito.

O que é slopsquatting?

Slopsquatting, também chamado de hallucination squatting, é o que acontece quando um atacante registra um nome de pacote que modelos de IA tendem a alucinar, e então espera que os desenvolvedores o instalem por recomendação de uma IA. Atacantes de squatting contam com assistentes de IA sugerindo com confiança nomes de pacotes que não existem, e desenvolvedores confiando que é um pacote real que eles solicitaram.

Quando um desenvolvedor executa a instalação com este nome de pacote, ele obtém o pacote do atacante. O pacote geralmente executará algum script pós-instalação que rouba quaisquer credenciais presentes no ambiente (chaves de API, tokens de Cloud, tokens de autenticação npm) e as encaminha para o atacante.

Enquanto alguns pacotes apenas incluem o ataque em um script pós-instalação, pacotes mais sofisticados evitam colocar código malicioso no pacote inteiramente, usando o suporte do npm para dependências baseadas em URL para buscar um payload de um servidor externo no momento da instalação. O pacote parece limpo para qualquer scanner estático ingênuo porque não há código obviamente malicioso.

Digamos que você peça à sua IA para instalar um pacote linter JavaScript. Ela oferece unused-imports e pergunta se você deseja instalá-lo (se ela não ignorar a pergunta por completo). Isso soa como o pacote que você já usou antes, então você o instala.

O Claude quer executar: npm install unused-imports
[y] Aceitar  [n] Rejeitar  [e] Editar  [Esc] Cancelar

No entanto, o pacote real é eslint-plugin-unused-imports. Acontece que, unused-imports é um pacote malicioso, e, surpresa! Você acabou de instalar um malware! (Este é, na verdade, um real pacote malicioso, a propósito, e potencialmente um ataque intencional de slopsquatting. Você pode pesquisá-lo no Aikido Intel. o npm o colocou sob uma retenção de segurança agora).

LLMs realmente alucinam nomes de pacotes com bastante frequência. Mackenzie Jackson, Developer Advocate na Aikido Security, descreveu uma alucinação que encontrou em um episódio do podcast Secure Disclosure. Ele pediu a uma IA para ajudar a conectar seu projeto Node.js a um banco de dados OrientDB, uma combinação tecnicamente viável, mas incomum, sem uma solução de pacote óbvia. Em vez de admitir que estava sem resposta, o modelo inventou nomes de pacotes. Mackenzie diz sobre o processo de pensamento da IA: "Eu não tenho nada para você, mas preciso ter algo para você, então aqui está o que eu acho que os pacotes para isso seriam chamados."

Como o slopsquatting é diferente do typosquatting?

Typosquatting ocorre quando um atacante registra um pacote malicioso com um nome suficientemente parecido com um pacote popular para que um usuário, ao digitar incorretamente, acabe o instalando. Atacantes encontram um pacote com muitas downloads e um nome fácil de soletrar incorretamente, removem um hífen, trocam duas letras, adicionam um caractere extra e "ocupam" o pacote com o nome incorreto antes que outra pessoa o faça. Typosquatting tem sido uma constante no npm desde pelo menos 2017, quando um atacante publicou crossenv, uma "ocupação" do popular cross-env pacote. O npm agora possui proteções contra isso, ao impedir o registro de nomes de pacotes muito semelhantes aos existentes.

Slopsquatting é typosquatting, mas em vez de apostar nos "dedos gordos" de um humano, os atacantes estão apostando em uma IA que está confiantemente errada. (Sim, é assim que a IA é considerada confiável atualmente). A principal diferença entre slopsquatting e typosquatting que tivemos no passado é que as variantes parecem totalmente diferentes, e com o primeiro, há um volume maior de nomes para os atacantes escolherem.

Por exemplo, 8,7% dos nomes de pacotes Python alucinados por IA acabaram sendo pacotes JavaScript válidos. Nesse caso, o modelo faz a conexão correta com algo real, mas no ecossistema errado. Um terreno fértil para atacantes registrarem nomes de pacotes de outros ecossistemas.

Pesquisadores da USENIX Security 2025 testaram 16 modelos em 576.000 amostras de código e descobriram que as alucinações seguem padrões previsíveis: 38% são confluências como express-mongoose, onde o modelo combina duas coisas reais, 13% são variantes de erro de digitação e 51% são puras fabricações. Isso representa um conjunto muito maior de nomes "ocupáveis" do que o typosquatting jamais ofereceu e, ao contrário do typosquatting, nenhum desses novos nomes tem algo a ser "semelhante a" no sistema de proteção do npm.

O slopsquatting está acontecendo agora?

Acreditamos que sim. Estamos vendo pacotes de malware cujos nomes são consistentes com o padrão de slopsquatting, mas não podemos provar a intenção dos atacantes com esses nomes. Veja unused-imports, o pacote malicioso confirmado que mencionamos anteriormente. No início de fevereiro, ele ainda registrava 233 downloads por semana. Esses desenvolvedores estão seguindo recomendações de IA que ainda apontam para esse nome, o têm em sua árvore de dependências e o estão reinstalando, ou o encontraram em documentações ou no Stack Overflow que não foram atualizados.

No entanto, pesquisadores estão definitivamente encontrando e comprovando os primeiros precursores do slopsquatting na vida real. No início de 2024, Bar Lanyado, da Lasso Security, notou modelos de IA alucinando repetidamente um pacote Python chamado huggingface-cli. A ferramenta real é instalada de forma diferente, como pip install -U "huggingface_hub[cli]", mas os modelos continuaram sugerindo a versão mais curta e inexistente. Lanyado carregou um pacote vazio com esse nome no PyPI para ver o que aconteceria. 

huggingface-cli obteve mais de 30.000 downloads autênticos em três meses. A Alibaba havia copiado e colado o comando de instalação alucinado no README de um de seus repositórios públicos. O pacote era inofensivo, mas Lanyado provou que essa estratégia funciona. A Alibaba teve sorte de Lanyado ter descoberto isso antes de um atacante.

Uma alucinação de pacote de IA que se espalhou por conta própria

Charlie Eriksen, Pesquisador de Segurança na Aikido encontrou algo ainda mais surpreendente– um nome de pacote alucinado se espalhando por infraestruturas de IA reais, com agentes reais tentando executá-lo, que ninguém plantou deliberadamente. Em janeiro de 2026, Charlie alegou que este pacote npm chamado react-codeshift. O pacote não era real, não tinha autor e definitivamente não havia sido registrado antes. O nome é uma clássica alucinação por conflação. Dois pacotes reais com nomes semelhantes existem, jscodeshift e react-codemod, que um LLM combinou para inventar o nome react-codeshift

O pacote fez sua primeira aparição em um único commit de 47 Agent Skills geradas por LLM. Podemos supor que uma IA foi solicitada a gerar um conjunto de instruções para agentes de codificação e, ao fazer isso, alucinou nomes de pacotes que precisaria para realizar essas tarefas. Nenhum humano revisou a saída (ou pelo menos não a testou), então essa alucinação de IA foi imortalizada via GitHub.

Quando Charlie o encontrou como parte de sua pesquisa sobre pacotes não reivindicados, o nome deste pacote inexistente havia se espalhado para 237 repositórios através de forks e sido traduzido para o japonês. Depois que Charlie o reivindicou, react-codeshift continuou recebendo algumas dezenas de downloads diários. São agentes de IA seguindo instruções de habilidades e acionando instalações npx em ambientes reais. Se um atacante o tivesse registrado primeiro, poderia ter ocorrido um ataque de slopsquatting maior que se espalharia organicamente

Como se proteger contra ataques de slopsquatting

Verifique o editor, não apenas o nome

A resposta óbvia é verificar os nomes dos pacotes antes de instalar, mas não é tão simples. A contagem de downloads não é um sinal confiável (vimos que pacotes maliciosos ainda têm downloads diários regulares). O que realmente importa é o editor: quem registrou este pacote, quando, e isso corresponde ao que você esperaria de um mantenedor legítimo? Um pacote que se declara um eslint plugin sem informações de mantenedor e com data de registro da última terça-feira é um sinal de alerta, independentemente de seus números de download.

Trate a instalação autônoma de pacotes como uma operação privilegiada

Se você está executando agentes de IA que podem instalar pacotes sem confirmação, Claude Code em modo bypass, uma configuração de codificação agentic, ou pipelines de CI com amplas permissões npm, a etapa de verificação que você normalmente faria como humano desaparece. O agente simplesmente prosseguirá se tiver autoridade. Esse é o modelo de ameaça em torno do qual o slopsquatting é construído, então defina o escopo dessas permissões de acordo.

Analise sua árvore de dependências completa

Alguns nomes de pacotes alucinados estão terminando como dependências aninhadas em vez de instalações diretas, o que significa que não aparecerão no seu package.json. Um scanner de análise de composição de software (SCA) examina sua árvore de dependências completa para detectar pacotes maliciosos ocultos e enterrados.

Use SafeChain para proteção em nível de npm

Aikido SafeChain é um wrapper de código aberto para npm, npx, yarn, e pnpm que intercepta comandos de instalação de pacotes e os verifica contra Aikido Intel antes que qualquer coisa chegue à sua máquina.

Conclusão

Nomes de pacotes não reivindicados sempre foram reivindicáveis, mas agora temos IAs que nos fornecem com confiança nomes de pacotes falsos para instalar e agentes de IA que espalham esses nomes por repositórios.

À medida que o 'vibe coding' se torna a norma e mais agentes de IA com tema de lagosta começam a codificar sem humanos por perto (leia nosso artigo sobre ‘Por que tentar proteger o OpenClaw é ridículo’), a janela para um humano detectar um nome de pacote ruim antes que ele seja executado continua diminuindo. Vimos que os nomes que os LLMs alucinam são consistentes e repetíveis, e os atacantes estão percebendo isso.

Verifique suas árvores de dependência. Verifique os editores. E use uma ferramenta que fica entre seu gerenciador de pacotes e o registro e faz a verificação para você. 

Compartilhar:

https://www.aikido.dev/blog/slopsquatting-ai-package-hallucination-attacks

Comece hoje, gratuitamente.

Comece Gratuitamente
Não é necessário cc

Assine para receber notícias sobre ameaças.

4.7/5
Cansado de falsos positivos?

Experimente Aikido como 100 mil outros.
Começar Agora
Obtenha um tour personalizado

Confiado por mais de 100 mil equipes

Agende Agora
Escaneie seu aplicativo em busca de IDORs e caminhos de ataque reais

Confiado por mais de 100 mil equipes

Iniciar Escaneamento
Veja como o pentest de IA testa seu aplicativo

Confiado por mais de 100 mil equipes

Iniciar Testes

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.