Faz alguns dias código malicioso foi detectado nas dependências do pacote npm com o instalador PureScript, que se manifesta ao tentar instalar o pacote purescript.
Código malicioso incorporado via dependências load-from-cwd-or-npm e dependências do mapa de velocidade. Deve-se notar que o autor original do pacote npm com o instalador PureScript, que até recentemente estava envolvido na manutenção deste pacote npm, mas o pacote foi enviado para outros mantenedores, é responsável por acompanhar os pacotes com essas dependências.
Sobre o problema
O problema foi descoberto por um dos novos analistas da embalagem, para quem os direitos de manutenção foram transferidos após muitos desacordos e discussões desagradáveis com o autor original do pacote npm purescript.
Os novos mantenedores são responsáveis pelo compilador PureScript e eles insistiram que o pacote NPM com seu instalador deveria ser reparado pelos próprios mantenedores, não por um desenvolvedor fora do projeto.
O autor do pacote npm com o instalador PureScript discordou por um longo tempo, mas então desistiu e deu acesso ao repositório. No entanto, algumas dependências foram deixadas sob seu controle.
Na semana passada, o lançamento do compilador PureScript 0.13.2 foi anunciado e os novos mantenedores prepararam a atualização correspondente do pacote npm com o instalador, para o qual o código malicioso foi detectado.
O código malicioso foi inserido pela primeira vez no pacote npm "load-from-cwd-or-npm" na versão 3.0.2 e, em seguida, no pacote de mapa de taxas da versão 1.0.3. Nos últimos dias, várias versões de ambos os pacotes foram publicadas.
Alterado da postagem que acompanha o autor do pacote npm com o instalador PureScript, ele disse que sua conta foi comprometida por invasores desconhecidos.
No entanto, na forma atual, as ações do código malicioso eram limitadas apenas por sabotar a instalação do pacote, que foi a primeira versão dos novos mantenedores. As ações mal-intencionadas ocorreram durante a tentativa de instalação de um pacote com o comando "npm i -g purescript" sem realizar nenhuma atividade mal-intencionada explícita.
Dois ataques foram identificados
Em resumo, o código sabota o instalador do purescript npm para evitar que o download seja concluído, o que faz com que o instalador trave durante a etapa "Verificar se um binário pré-compilado é fornecido para sua plataforma".
O primeiro exploit fez isso quebrando o pacote load-from-cwd-or-npm de modo que qualquer chamada para loadFromCwdOrNpm () retornaria uma sequência de passagem em vez do pacote esperado (neste caso, o pacote de solicitação, que estávamos usando para baixar os binários do compilador). A segunda iteração do exploit fez isso modificando um arquivo de origem para evitar que um callback de download fosse disparado.
4 dias depois os desenvolvedores entenderam a origem das falhas e estavam se preparando para lançar uma atualização para excluir load-from-cwd-o-npm das dependências, os atacantes lançaram outra atualização load-from-cwd-or-npm 3.0.4, onde o código malicioso foi removido.
No entanto, uma atualização para outra dependência do Rate-Map 1.0.3 foi lançada quase imediatamente, na qual uma correção foi adicionada que bloqueia a chamada de retorno para download.
Ou seja, em ambos os casos, as mudanças nas novas versões de load-from-cwd-or-npm e a taxa de mapa eram da natureza de um desvio aparente.
Além disso, no código malicioso havia uma verificação que desencadeou as ações falhadas apenas ao instalar a versão dos novos mantenedores e não apareceu na instalação das versões anteriores.
Os desenvolvedores resolveram o problema lançando uma atualização na qual as dependências problemáticas foram removidas.
Para evitar que o código comprometido seja instalado nos sistemas dos usuários, após tentar instalar a versão problemática do PureScript.
Finalmente o desenvolvedor recomenda para todos que possuem as referidas versões do pacote em seu sistema remova o conteúdo dos diretórios node_modules e os arquivos package-lock.json e, em seguida, defina o purescript versão 0.13.2.