github - Forma correcta de corregir una posible vulnerabilidad de seguridad en una dependencia definida en package-lock.json
npm (7)
Github me ha dado este error en uno de mis repositorios.
We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities
and should be updated.
La dependencia no está definida en nuestro archivo
package.json
.
A mi entender, no es una buena práctica eliminar el archivo
package-lock.json
y
package-lock.json
.
Sin embargo, no puedo ver ninguna otra forma de solucionar este problema.
Si descarto esta vulnerabilidad de seguridad, aparecerá nuevamente un par de días después.
¿Algunas ideas?
¡Gracias!
A mi entender, no es una buena práctica eliminar el archivo package-lock.json y volver a generarlo.
Sin embargo, esto es lo que generalmente se hace en este caso.
Véase, por ejemplo, el problema
angular / angular-cli 8534
, que se resuelve con
PR 8535
.
Eso lleva a un proyecto dependiente como
frees-io/freestyle-opscenter-webclient
para
actualizar su
package-lock.json
: PR 31
.
vulnerabilidades de seguridad conocidas y deben actualizarse.
Desde el 23 de mayo de 2019, ahora tiene " Dependabot: correcciones de seguridad automatizadas "
A través de la integración de Dependabot, hemos lanzado correcciones de seguridad automatizadas como una versión beta pública.
Las correcciones de seguridad automatizadas son solicitudes de extracción generadas por GitHub para corregir vulnerabilidades de seguridad.
Automatizan una parte tediosa del flujo de trabajo y facilitan a los desarrolladores mantener sus dependencias actualizadas.
Ver más en " Configuración de soluciones de seguridad automatizadas "
Nota: Las correcciones de seguridad automáticas están disponibles en versión beta y están sujetas a cambios.
Puede habilitar correcciones de seguridad automáticas para cualquier repositorio que use alertas de seguridad y el gráfico de dependencia.
Habilitaremos automáticamente las correcciones de seguridad automáticas en cada repositorio que use alertas de seguridad y el gráfico de dependencia durante los próximos meses, a partir de mayo de 2019.
- En GitHub, navegue a la página principal del repositorio.
- Debajo de su nombre de repositorio, haga clic en Seguridad.
- Haga clic en la alerta que desea ver.
- Revise los detalles de la vulnerabilidad y, si está disponible, la solicitud de extracción que contiene la corrección de seguridad automatizada.
- Opcionalmente, si aún no existe una solución de seguridad automatizada para la alerta, para crear una solicitud de extracción para resolver la vulnerabilidad, haga clic en Crear solución de seguridad automatizada.
- Cuando esté listo para actualizar su dependencia y resolver la vulnerabilidad, combine la solicitud de extracción.
Debe intentar identificar el nombre del paquete problemático y luego ejecutar
npm install package-name
reemplazando nombre-paquete, obviamente.
Esto instalará la última versión del paquete, y muy a menudo, la última versión ha solucionado el problema de seguridad. Si tiene una restricción en la versión (por ejemplo: 1.2), siempre puede intentar:
npm install package-name@^1.2
y se instalará la última versión parcheada
Nuevo: ahora, con npm @ 6 puede ejecutar directamente
npm audit fix
Esto funciona para mi. desinstale todas sus dependencias e instálelo nuevamente
Por ejemplo
de package.json vea la lista de sus dependencias
{ "name": "ebook-saler", "version": "1.0.0", "description": "App for selling ebooks", "main": "app.js", "scripts": { "start": "node app.js" }, "author": "Md Shayon", "license": "ISC", "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", "express-handlebars": "^3.1.0", "hoek": "^6.1.3", "stripe": "^7.5.0" } }
Sigue el comando para esto
npm uninstall body-parser express express-handlebars hoek stripe npm install body-parser express express-handlebars hoek stripe git commit -m "updated" git push
La forma más simple / fácil de solucionar esto es:
-
npm install <dep>
-
npm uninstall <dep>
-
npm update
-
npm install
De: https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041
Para resolver esto:
Solución1: Primero encuentre la vulnerabilidad: Usando su terminal: cd en su proyecto , luego ejecute "npm ls hoek"
Y finalmente: npm install bcrypt @ latest
Luego empuje el proyecto actualizado a git. (Es decir, realice una nueva confirmación).
Solución 2:
si la primera opción / solución no resuelve el problema. Cambie la versión manualmente en su paquete-lock.json. Cambie su versión manualmente de 2.16.3 a 4.2.1
"hoek": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
"dev": true
Luego actualice su proyecto en GitHub (commit / push) Solo asegúrese de que cada versión de hoek en su versión package-lock.json se cambie a 4.2.1
Alternativamente, si puede encontrar una manera de cambiar la versión de hoek / actualizar hoek usando npm, hará las cosas mucho más simples (algo así como: npm update @ hoek..version ) ... o desinstale la dependencia específica y luego vuelva a instalarla usando bower o npm.