TL; DR
Els paquets npm maliciosos no són un esdeveniment ocasional. Són una operació de publicació contínua i la llista de casos confirmats s'actualitza cada setmana. En set edicions consecutives del nostre Malicious Code Digest, que ja ha passat la 87a, Xygeni ha confirmat 635 paquets maliciosos, de 13 en una setmana tranquil·la a 206 en una de concorreguda. El punt clau és el rang setmanal: es tracta d'una cadència, no d'un incident.
- La cadència és el problema. Un paquet va passar de zero a més de 55 versions en una setmana. Un altre clúster va publicar gairebé 30 noms de paquets en menys de tres hores. Una auditoria setmanal no és la unitat de temps adequada.
- No arriben com a CVE. Un paquet maliciós no és una falla en el codi legítim, per la qual cosa no hi ha cap avís, ni puntuació i normalment no hi ha cap identificador. Un programa basat en vulnerabilitats és estructuralment cec a això.
- La detenció no és protecció. Els paquets solen estar actius durant minuts o hores. La instal·lació o bé s'ha produït en aquesta finestra o bé no.
- La detecció ha de tenir lloc en el moment de la publicació i l'aplicació en el moment de la instal·lació. Qualsevol cosa que esperi una signatura, un CVE o una exploració setmanal arriba després de la compilació que l'ha tret.
La llista existeix. Això no és el mateix que ser observat
No hi ha cap misteri sobre els paquets npm maliciosos. Els casos confirmats es publiquen, s'anomenen i es documenten cada setmana, fins i tot en Resum de codi maliciós de Xygeni, ja superada la vuitanta-setena edició.
La bretxa no és informació. És atenció i cadència. Una llista actualitzada setmanalment, llegida mensualment i sobre la qual s'actuï trimestralment és una llista que documenta el que ja li ha passat a algú.
Així és com van ser set setmanes, extretes de les nostres pròpies troballes confirmades en lloc d'una enquesta de proveïdors.
| Resum | Paquets confirmats | Què va destacar |
|---|---|---|
| Digest 87 | 13 | Primer clúster de compositors. @umschool/platform publicat a 999.0.0 superar un paquet intern |
| Digest 86 | 35 | La campanya de Baileys rota els àlies. Quatre @stellarshift paquets publicats en una versió idèntica |
| Digest 85 | 53 | [confirmar destacat] |
| Digest 84 | 34 | Suplantació d'identitat de Baileys en quatre noms i sis dies. cloud-baileys reeditat quatre vegades |
| Digest 83 | 114 | wormgpt-clinou versions en un sol dia, que porten el nom d'una eina real de dark-LLM |
| Digest 82 | 206 | [confirmar destacat] |
| Digest 81 | 180 | 17 paquets que suplanten noms interns de PayPal a 28.0.0. zevairouter 55 versions anteriors |
El patró que importa no són els totals. És la velocitat dins de cada setmana.
La velocitat és tot l'atac
Tres troballes d'aquelles setmanes, cadascuna una manera diferent de superar la revisió.
- Inundació de versions. Un únic paquet npm,
zevairouter, va arribar a més de 55 versions confirmades en una setmana, a les quals se li van afegir deu més d'un paquet complementari. A PyPI,bingo-aiva produir gairebé 80 versions en uns 30 minuts. Cap procés de revisió manual funciona a aquesta velocitat, i tampoc ho fa una feina nocturna. - Clústers sincronitzats. Disset paquets que suplantaven noms de serveis interns de PayPal es van publicar en els mateixos minuts, tots a la versió 28.0.0. Això no és volum, és una cursa: existeix un número de versió inflat per superar el paquet intern que van escriure els vostres propis equips. El mateix truc va reaparèixer setmanes després amb
@umschool/platformpublicat a 999.0.0. - Persistència mitjançant la destrucció. La campanya d'impersonació de Baileys fa setmanes que dura. Els noms roten, les versions pugen, la republicació continua després de la detecció. Un operador que tracta les retirades com un cost de fer negocis en lloc d'una raó per aturar-se és un operador que la vostra revisió trimestral mai no atraparà.
I el temps de permanència és curt per disseny. En un clúster recent, els paquets van estar actius entre 17 minuts i 13 hores abans de ser retirats.
| paquet | Publicat (UTC) | Esquerra dempeus |
|---|---|---|
moidev | 2026-08-16 16:31 | 5 h 58 min |
moidevx | 2026-08-17 03:24 | 13 h 23 min |
moidevz | 2026-08-26 03:38 | 12 h 56 min |
moideva | 2026-08-26 18:58 | 1 h 33 min |
amicat | 2026-08-28 20:48 | 17m |
bmcat | 2026-08-28 21:17 | 47m |
eyevox | 2026-08-28 21:44 | 21m |
moidevh | 2026-08-31 03:22 | 47m |
Llegiu-ho com una finestra d'exposició en lloc d'una mètrica de rendiment per al registre. Si una compilació s'executava durant aquesta, la supressió no canviava res.
Per què el vostre programa de vulnerabilitat no veu això
Aquest és el punt estructural, i és el que la majoria dels equips de seguretat no han interioritzat.
| Una vulnerabilitat | Un paquet maliciós | |
|---|---|---|
| Origen | Un error en el codi escrit de bona fe | Un artefacte construït i publicat per causar danys |
| identificador | CVE, amb un assessorament i una puntuació | Normalment cap. Sense CVE, sense avís. |
| Línia de temps | Divulgat i després corregit durant dies o setmanes | Viuen durant minuts o hores, després s'eliminen |
| Com aprens | Canal, escàner, assessorament | Només si alguna cosa estava vigilant el registre en el moment de la publicació |
| La solució | Actualitza a una versió amb pegats | No hi ha cap versió modificada. Mai va ser legítima. |
| Què fa el vostre programa | Ingestes, puntuacions, programacions | Res, tret que fos construït per això |
Una vulnerabilitat és una falla en el codi que algú va escriure de bona fe. Un paquet maliciós és un artefacte deliberat publicat per un atacant, normalment sense identificador, sense avís i amb una vida útil mesurada en hores. Tots els processos basats en la ingestió de CVE, la puntuació de gravetat i les finestres de pegats es van dissenyar per a la primera cosa i es van aplicar a la segona per defecte.
L'absència d'un identificador no és un descuit en el sistema CVE. És la categoria que funciona tal com està dissenyada: ningú presenta un avís contra un artefacte el propòsit del qual era maliciós, i quan algú ho pot fer, el paquet ja no hi és. Això significa que la pregunta és "Això té un CVE?"retorna la mateixa resposta per a un paquet net i per a un lladre de credencials publicat fa una hora.
Què fan realment les càrregues útils ara
La imatge ingènua dels paquets npm maliciosos és la d'un miner de criptomonedes. La realitat actual és el robatori de credencials dirigit als desenvolupadors i, cada cop més, a les credencials d'IA de les seves màquines.
L' PhantomSync clúster, vuit paquets npm publicats sota un sol compte, va funcionar exactament com s'anunciava mentre amagava un dropper autoinvocat que s'activava aproximadament 37 segons després de la importació, descodificava una càrrega útil preparada com un dispositiu de prova fals, instal·lava la persistència multiplataforma i llançava un lladre de carteres i secrets. Retardar, dissimular, persistir, exfiltrar.
A major escala, l'ona CHAINDROP de la Cuc Shai-Hulud va arribar a més de 400 paquets i 1,700 versions a principis d'agost de 2026, amb un total d'1.3 milions de descàrregues mensuals. El seu col·leccionista va escanejar més de 300 patrons de credencials, incloent-hi claus OpenAI, Anthropic i Cursor. Les màquines dels desenvolupadors es van convertir en valuoses precisprobablement a causa de les credencials de model que tenen.
Les convencions de nomenclatura han seguit els diners. Clústers recents imiten SDK de criptomoneda i DeFi, mòduls de pagament, biblioteques API de WhatsApp, utilitats d'AWS i, en un cas, un paquet amb la marca oberta d'una eina d'atacant dark-LLM.
Què realment atura els paquets npm maliciosos
Quatre controls, en l'ordre en què paguen.
1. Detecció en el moment de la publicació, no en el moment de la divulgació. Alerta precoç de programari maliciós de Xygeni analitza els paquets recentment publicats a npm, PyPI, Maven i altres registres en el moment en què apareixen, utilitzant anàlisi de comportament i anomalies en lloc d'esperar una signatura o un informe. Aquest és l'únic punt de la línia de temps que està per davant de la vostra compilació.
2. Aplicació de la normativa on es produeix la instal·lació. La detecció indica que un paquet és maliciós. Una política que bloqueja la instal·lació és el que impedeix que s'executi l'script de postinstal·lació. Això és més important ara que els agents instal·len dependències sense que les esculli una persona.
3. Fitxers de bloqueig i fixació hash. Ús npm ci en CI en lloc de npm install, de manera que l'arbre de dependències exacte del fitxer de bloqueig és el que es construeix. Tanca la ruta de substitució en què es basen els typosquats i les versions inflades.
4. Troballes en un sol lloc. Les troballes de programari maliciós pertanyen a la mateixa cua prioritzada que la vostra SCA i troballes de codi, no en un canal separat que algú revisa. Una dependència maliciosa confirmada hauria de superar un CVE de gravetat mitjana, i només un model de risc compartit fa possible aquesta comparació.
Mireu la llista o automatitzeu-la
Ningú té l'atenció per llegir un feed de registre cada setmana. Aquest és l'objectiu d'automatitzar-ho.
Xygeni analitza els paquets recentment publicats a npm i altres registres en el moment de la publicació, marca el programari maliciós confirmat abans que arribi a una compilació i col·loca la troballa a la mateixa cua prioritzada que tot el que ja utilitza el vostre equip. Detecció de programari maliciós està inclòs en el pla gratuït per a desenvolupadors, cosa que no és cert en la majoria de nivells gratuïts d'aquesta categoria.
Comença gratis, o llegir Resum de codi maliciós d'aquesta setmana primer.
FAQ
Què són els paquets npm maliciosos?
Paquets publicats al registre npm que es creen deliberadament per causar danys: lladres de credencials i moneders, portes del darrere, droppers i artefactes de confusió de dependències que suplanten noms de paquets interns o populars.
Quina és la freqüència dels paquets npm maliciosos?
Contínuament. En set edicions recents del nostre Malicious Code Digest, Xygeni va confirmar 635 paquets maliciosos, que van des d'aproximadament una dotzena en una setmana tranquil·la fins a més de 200 durant campanyes actives. npm representa la gran majoria.
Quant de temps romanen disponibles els paquets npm maliciosos?
Sovint de minuts a hores. Aquesta finestra és el que importa, perquè una compilació que s'executa dins d'ella ja es veu afectada independentment de la rapidesa amb què s'elimini el paquet després.
Els paquets npm maliciosos reben CVE?
Normalment no. Són artefactes publicats per atacants en lloc de defectes en codi legítim, i les campanyes de 2026 rastrejades no van rebre assignacions CVE durant l'explotació activa.
Com puc comprovar si un paquet és maliciós abans d'instal·lar-lo?
Feu servir una eina que analitzi els paquets en el moment de la publicació en lloc d'una que comprovi una llista de paquets coneguts com a dolents, verifiqueu l'editor i l'historial de versions, sospiteu dels números de versió inusualment alts i dels comptes nous, i apliqueu una política en el moment de la instal·lació en lloc de confiar en la revisió.
Què és la confusió de dependència?
Publicar un paquet públic amb el mateix nom que un paquet intern, normalment en una versió inflada, de manera que el resolutor prefereixi la còpia de l'atacant. El clúster amb nom de PayPal a la versió 28.0.0 n'és un exemple de llibre de text.







