node.js - last - npm ERR! 404 No encontrado: [email protected]
npm last version (5)
Estoy intentando implementar mi proyecto y de repente me aparece este error.
npm ERR! 404 No encontrado: [email protected]
tldr;
Vaca santa Resulta que el paquete Event-stream tenía una vulnerabilidad que permitía a un hacker robar bitcoin.
Para arreglarlo necesitas actualizar tu paquete de
event-stream
.
-
Eliminar la carpeta
node_modules
. -
Eliminar el archivo
package-lock.json
. -
Ejecute
npm install
.
Esto debería actualizar sus paquetes a una versión segura y debería estar listo.
Y aquí está la respuesta oficial del blog de NPM:
Detalles sobre el incidente del flujo de eventos Este es un análisis del incidente del flujo de eventos del cual muchos de ustedes se dieron cuenta a principios de esta semana. npm actúa de inmediato para abordar las inquietudes operativas y los problemas que afectan la seguridad de nuestra comunidad, pero generalmente realizamos un análisis más exhaustivo antes de discutir los incidentes; sabemos que ha estado esperando.
En la mañana del 26 de noviembre, el equipo de seguridad de npm fue notificado de un paquete malicioso que se había abierto paso en Event-stream, un popular paquete npm. Después de probar el malware, npm Security respondió eliminando flatmap-stream y [email protected] del Registro y asumiendo la propiedad del paquete event-stream para evitar nuevos abusos.
El paquete malicioso era la versión 0.1.1 de flatmap-stream. Este paquete fue agregado como una dependencia directa del paquete de flujo de eventos por un nuevo mantenedor el 9 de septiembre de 2018, en la versión 3.3.6. El paquete de flujo de eventos se usa ampliamente, pero el código malicioso se dirigió a los desarrolladores de una empresa que tenía una configuración de entorno de desarrollo muy específica: ejecutar la carga útil en cualquier otro entorno no tiene efecto. Esta orientación específica significa que, en última instancia, la mayoría de los desarrolladores no se verían afectados, incluso si hubieran instalado por error el módulo malicioso.
El código inyectado apunta a la aplicación Copago. Cuando un desarrollador de Copay ejecuta uno de sus scripts de compilación de lanzamiento, el código resultante se modifica antes de integrarse en la aplicación. El código fue diseñado para recopilar detalles de cuenta y claves privadas de cuentas con un saldo de más de 100 Bitcoin o 1000 Bitcoin Cash.
La respuesta inicial de Copay fue que no se publicaron compilaciones que contenían este código malicioso, pero ahora tenemos la confirmación de Copay de que "el código malicioso se implementó en las versiones 5.0.2 a 5.1.0".
El ataque Este ataque comenzó como un ataque de ingeniería social. El atacante, haciéndose pasar por un mantenedor, se hizo cargo del mantenimiento del módulo de flujo de eventos.
Los detalles técnicos Aquí hay algunos detalles técnicos que conocemos, para aquellos de ustedes interesados en esto.
El código inyectado:
Lea los datos encriptados AES de un archivo disfrazado como un dispositivo de prueba. Tomó la descripción del paquete npm del módulo que lo importó, usando una variable de entorno configurada automáticamente. Usó la descripción del paquete como una clave para descifrar una parte de los datos extraídos del archivo disfrazado. Los datos descifrados formaban parte de un módulo, que luego se compilaba en la memoria y se ejecutaba.
Este módulo realizó las siguientes acciones:
Se descifró otra parte de los datos del archivo disfrazado. Se concatenó un pequeño prefijo comentado desde la primera parte descifrada hasta el final de la segunda parte descifrada. Se realizaron tareas de descodificación menores para transformar el bloque concatenado de código de JS no válido a JS válido (creemos que esto era Hecho para evadir la detección mediante herramientas de análisis dinámico En dispositivos propiedad de los usuarios finales de Copay.
Este código haría lo siguiente:
Detecte el entorno actual: Mobile / Cordova / Electron Verifique los saldos de Bitcoin y Bitcoin Cash en la cuenta de copago de la víctima Si el saldo actual era mayor que 100 Bitcoin, o 1000 Bitcoin Cash: recopile los datos de la cuenta de la víctima en su totalidad Coseche las claves privadas de copago de la víctima Envíe los datos de cuenta / claves privadas de la víctima al servicio de recolección que se ejecuta en 111.90.151.134. Para los usuarios de la aplicación Copay, bitpay recomienda: "Si está utilizando cualquier versión de 5.0.2 a 5.1.0, no debe ejecutar ni abrir la aplicación Copago".
Para los usuarios de npm, puede verificar si su proyecto contiene la dependencia vulnerable ejecutando la auditoría de npm. Si ha instalado la versión afectada de esta secuencia de eventos, le recomendamos que actualice a una versión posterior lo antes posible.
En realidad no necesitamos actualizar todos los paquetes que dependen de [email protected].
Puede abrir
package-lock.json
, eliminar todas las referencias de flujo de eventos y
npm install
llamar a
npm install
.
Será más rápido.
Después de eso,
npm shrinkwrap && mv npm-shrinwrap.json package-lock.json
debería actualizar solo las referencias de la secuencia de eventos y no todo el archivo
He actualizado npm-run-all de 4.1.3 a 4.1.5 en package.json (eliminar en la secuencia de eventos del archivo de bloqueo) Luego, npm install.
Resuelvo este problema siguiendo los siguientes pasos:
- abra su registro más reciente para este error en /node_cache/_logs/xxxx-xx-xxx-debug.log
-
Encuentra la raíz de la hoja de la
event-stream
deevent-stream
, por ejemplo:
45 silly saveTree +-- [email protected]
45 silly saveTree | +-- [email protected]
45 silly saveTree | +-- [email protected]
45 silly saveTree | | `-- [email protected]
45 silly saveTree | | `-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | +-- [email protected]
45 silly saveTree | | `-- [email protected]
- en este caso, la raíz es nodemon, por lo que puede solucionarlo mediante: npm install [email protected]
- npm instalar con éxito ahora
Siga los siguientes métodos:
-
Borre los archivos node_modules y package_lock.json
-
Ejecutar npm list event-stream
- Ejecutar auditoría npm
- Ejecutar caché npm verificar
- Ejecutar npm install
- Ejecutar git añadir. (agregar archivos requeridos)
- Ejecuta git commit (confirma tus cambios)
- Ejecutar git push (empuje su código)