Hackers norte-coreanos publicam 108 pacotes maliciosos em npm, Go e Chrome na campanha PolinRider
Grupo ligado ao Contagious Interview publicou 108 pacotes e extensões em npm, Packagist, Go e Chrome Web Store; alvo continua sendo desenvolvedores e carteiras cripto.
Atores ligados à Coreia do Norte publicaram 108 pacotes maliciosos únicos e extensões de navegador entre npm, Packagist, Go e a Chrome Web Store como parte da campanha PolinRider, uma nova frente do já conhecido Contagious Interview. A operação, mapeada por pesquisadores da Socket, segue ativa e continua alavancando contas comprometidas de mantenedores para envenenar bibliotecas legítimas usadas por desenvolvedores no mundo todo.
O que aconteceu
A Socket, que acompanha ataques a repositórios de código aberto, atribuiu o conjunto ao mesmo cluster norte-coreano responsável pela campanha Contagious Interview, na qual falsos recrutadores abordam desenvolvedores com “testes técnicos” que instalam malware. Segundo a análise do pesquisador Karlo Zanki, o PolinRider abrange pacotes distribuídos em npm (JavaScript), Packagist (PHP), módulos Go e extensões do Chrome, ampliando substancialmente o alcance da operação.
Outro grupo de pesquisa, o OpenSourceMalware, identificou 1.951 repositórios públicos no GitHub associados a 1.047 mantenedores únicos, com sobreposição para uma linha de ataque paralela chamada TaskJacker — que injeta arquivos de tarefas maliciosos do VS Code em repositórios legítimos. Esses arquivos usam o parâmetro runOn: "folderOpen", que executa código automaticamente assim que o desenvolvedor abre a pasta como workspace no VS Code ou no Cursor.
O modus operandi contradiz a hipótese inicial de credenciais roubadas: os invasores estariam tomando posse de contas de mantenedores por caminhos indiretos — sequestro de domínios expirados vinculados aos e-mails de recuperação, resets de conta explorando canais laterais e engenharia social direta contra desenvolvedores individuais.
Como o ataque funciona
Uma vez executado, o payload da PolinRider vasculha o computador infectado em busca de arquivos de configuração comuns em projetos JavaScript modernos: postcss.config.mjs, tailwind.config.js, eslint.config.mjs, next.config.mjs, babel.config.js e app.js. Ao encontrá-los, o malware anexa código JavaScript malicioso, garantindo persistência dentro de projetos legítimos que serão publicados adiante — em uma segunda onda de contaminação supply-chain.
O objetivo final permanece o mesmo do resto do arsenal norte-coreano: exfiltração de carteiras de criptomoedas, tokens de autenticação em nuvem, chaves SSH e credenciais de sistemas corporativos. A moeda digital roubada financia o programa de armas do regime, e o próprio Departamento do Tesouro dos EUA já vinculou operações similares ao Lazarus Group.
“A campanha permanece ativa e novos pacotes maliciosos devem continuar aparecendo à medida que os atores comprometem contas de mantenedores, modificam repositórios legítimos e publicam versões infectadas onde retêm ou obtêm acesso ao registro”, escreveu Karlo Zanki, da Socket.
Quem é afetado
- Desenvolvedores JavaScript/TypeScript que consomem pacotes de npm sem revisão de dependências transitivas.
- Times de blockchain e Web3, alvo histórico de ataques ligados à Coreia do Norte por conta das carteiras cripto locais.
- Empresas com ambientes CI/CD abertos, onde a instalação automática de pacotes pode escalar de máquina do desenvolvedor para pipelines de produção.
- Usuários de VS Code e Cursor que abrem repositórios recebidos por recrutadores ou clonados de fontes não auditadas, ativando o gatilho
folderOpen. - Ecossistemas Go e PHP, historicamente vistos como menos vulneráveis a supply chain, agora explicitamente incluídos no perímetro do ataque.
Análise
O PolinRider marca um ponto de inflexão silencioso na estratégia norte-coreana. Até 2024, o Contagious Interview era essencialmente uma operação de spearphishing dirigido a candidatos individuais em processos seletivos falsos. A escala de 108 pacotes públicos e mais de mil mantenedores atingidos indica que os operadores passaram a atacar a cadeia de suprimento diretamente, sem depender de convencer um alvo a rodar código voluntariamente.
Isso coloca o Contagious Interview ao lado dos incidentes que sacudiram o npm nos últimos dois anos — do ataque ao event-stream em 2018 aos ataques em cascata contra a linha PostCSS já noticiados aqui no Plugged Ninja em edições anteriores. A diferença, agora, é a integração explícita de VS Code tasks como vetor: o mesmo dev que instalou o pacote também pode clonar um repositório e ver o computador comprometido antes mesmo de rodar npm install.
Do ponto de vista defensivo, PolinRider expõe uma fragilidade que vinha sendo ignorada: contas de mantenedores dormentes, com domínios de e-mail expirados, ainda controlam pacotes com centenas de milhares de downloads mensais. Enquanto o npm e a Chrome Web Store não obrigarem prova periódica de posse do domínio, sequestros por takeover continuam viáveis — e são caros de detectar em auditorias reativas.
Recomendações práticas
- Pin de versões e lockfiles auditáveis: comprometa-se com
package-lock.json/pnpm-lock.yamlversionados e evite atualizações automáticas em ambientes sensíveis. - Bloqueie a execução automática do VS Code: defina
security.workspace.trust.enabledcomotruee nunca marque como confiável um repositório clonado a partir de fontes não verificadas. - Monitore dependências dormentes: ferramentas como Socket, Snyk e OSSF Scorecard sinalizam pacotes cujo mantenedor sumiu ou cujo domínio de e-mail expirou.
- Separe ambientes de desenvolvimento de wallets pessoais: use máquinas ou VMs dedicadas quando lidar com códigos recebidos em processos seletivos ou testes técnicos externos.
- Adote alertas de outbound: comportamento típico do PolinRider inclui conexões a domínios recém-registrados; um EDR com regras de reputação de DNS captura o desvio antes que dados saiam.
- Verifique extensões do Chrome: revise a lista instalada em
chrome://extensions, especialmente aquelas com permissões de leitura de todos os sites.
Fonte: The Hacker News





