Às 09:35:00 UTC, o ChainDrop já estava no registro, e nenhuma faixa do eslint o aceitava.
npm install sem lockfile, 4 ago 2026, às 09:35:00 UTC
Mesma família de pacotes, faixas mais antigas. O ESLint só subiu para o file-entry-cache 11 na 10.10.0 (4 set 2026), já com a faixa 11.1.5 || >11.1.6 <12, que exclui a versão infectada.
69 NO GRAFO · 3 NO CAMINHOFaixas do grafo coletado em 25 set 2026 (deps.dev); raiz resolvida no instante escolhido
09:35:00 UTC · keyv 6.0.0 publicada. ^4.5.4 não aceita 6.0.0: barrado.
Compartilhar este instante
A manhã de 4 de agosto
Caminho
porta de entrada: file-entry-cache, dependência direta
Barrados pela faixa
E se fosse outro pacote
Sem lista de maliciosos: escolha qualquer um dos 68 pacotes do grafo do eslint e veja todos os caminhos até ele. Tocar num pacote do gráfico faz o mesmo.
O que fazer
Veja o seu caminho no repositório. Compare as versões que aparecem com a lista em Fontes e método.
npm ls keyv flat-cache file-entry-cache cacheable cacheable-request --allCommite o lockfile e instale com
npm cino CI: ele instala o que está no lockfile e não resolve faixas de novo.npm ciTrave a porta de entrada com
overridesnopackage.jsonaté o incidente fechar."overrides": { "file-entry-cache": "11.1.5" }Durante a janela de um incidente, instale sem scripts: o ChainDrop entrava pelo
preinstall.npm install --ignore-scripts
Fontes e método
- Lista de IOCs do ChainDrop, Datadog Security Labs
- Apache-2.0. 444 pacotes, 2.236 versões no arquivo usado; a StepSecurity conta 2.212. Artigo: “ChainDrop” worm compromises hundreds of popular npm packages (4 ago 2026).
- Dados de dependências: deps.dev (Google), CC BY 4.0
- O grafo resolvido de cada caso, com a faixa de cada aresta (API v3,
GetDependencies), e a data de publicação da raiz. - OSV e ossf/malicious-packages
- Apache-2.0. O registro MAL-… de cada versão maliciosa, com o mecanismo e os créditos.
- Registro do npm
- O segundo em que cada versão maliciosa foi publicada (campo
time). Só esses horários foram guardados. - StepSecurity, “ChainDrop npm Worm”
- A remoção: o npm começou a despublicar por volta de 10:39 UTC, e os 11 portadores principais foram revertidos até 18:10 UTC. É a afirmação deles; a hora de saída de cada versão não é pública.
Dados coletados uma vez em 25 set 2026; a página não consulta nada ao abrir.
A regra. Uma aresta está aberta quando uma versão maliciosa do pacote de destino já estava publicada naquele instante e a faixa da aresta a aceita (semver do npm). Está barrada quando há versão maliciosa publicada e a faixa não aceita nenhuma.
- A raiz é a versão que
npm installdava na manhã de 4 de agosto; o resto é o grafo como o deps.dev o coletou, não o de 4 de agosto. A regra usa a faixa de cada aresta, não a versão resolvida. - As dependências da versão maliciosa não são conhecidas (foi despublicada); supõe-se que tinha as mesmas faixas da versão limpa anterior.
- Com lockfile commitado e
npm ci, nada disso é resolvido de novo. A página não afirma que alguém foi infectado. - A hora em que cada versão saiu do registro não é conhecida; o gráfico não encolhe a zona depois de 10:39.