Обнаружена уязвимость в node-forge

#node.js #vue.js #package.json

#node.js #vue.js #package.json

Вопрос:

Недавно я запустил новую Vue.js проект. После моего последнего коммита на GitHub я получил следующее уведомление о зависимостях:

Известная уязвимость безопасности высокой степени серьезности, обнаруженная в node-forge < 0.10.0, определенная в package-lock.json. предложено обновление package-lock.json: node-forge ~> 0.10.0.

Как мне обновить node-forge? Я запустил исправление аудита npm.

node-forge находится только в моем файле package-lock.json и требуется для зависимости «самоподписанный».

Ответ №1:

Вы могли бы попробовать

 npm update
  

Это должно обновить все пакеты до последней версии, соблюдая правила семантического управления версиями в вашем package.json / package-lock.json.

Вы также можете попробовать разрешить Dependabot генерировать запрос на извлечение, чтобы устранить проблему. Если вы выберете само оповещение, вы должны увидеть кнопку, подобную этой:

Dependabot

Это попытается создать запрос на извлечение (это не всегда удается) и обычно занимает несколько минут. Как только это будет завершено, вы сможете просмотреть и объединить.

Комментарии:

1. обновление npm, похоже, решило эту проблему. Спасибо всем за вашу помощь.

Ответ №2:

Причинно-следственная связь:

node-forge@0.9.0 необходимо обновить до node-forge@^0.10.0

Решение (NPM)

rm -rf node-modules

rm package.lock

npm cache clean

npm i

Решение (Yarn)

rm -rf node_modules

rm yarn.lock

yarn cache clean

yarn

Объяснение

Это должно привести к тому, что библиотека, которая использует node-forge , обновит свои собственные зависимости.

Комментарии:

1. Решение npm неверно, должно быть rm -rf node_modules , и если вы используете Windows, используйте rm -r node_modules и rm pacakge-lock.json

2. Подождите, все это нужно сделать? Как насчет простого запуска npm install node-forge --save ?

Ответ №3:

В случае, если npm update это не устраняется, я исправил это, удалив package-lock.json amp; node_modules , а затем запустив npm install для воссоздания обоих.

Я ожидаю, что это быстрое исправление и, возможно, оно не идеально подходит для командной разработки, но это серьезная ошибка безопасности, которой более 3 недель, и ее необходимо устранить. Обязательно запустите git diff на package-lock.json и убедитесь, что он не обновил ничего, чего не должно было быть.

Для меня Dependabot не создал PR, как это обычно делается, поскольку ошибка была в node-forge 0.9.0, а патч был в 0.10.0, который самоподписанный считается критическим изменением. npm audit не нашел никакой уязвимости и npm update сделал несколько обновлений, но не обновил node-forge до 0.10.0 и не самоподписался до 1.10.8 (который обновляет ссылку на версию node-forge). Я использовал webpack-dev-server 3.11.0, который зависит от самоподписанного ^ 1.10.7. После повторного создания package-lock.json ссылка на webpack-dev-server не изменилась, но были обновлены версии с самоподписью и node-forge, что является именно тем, что я хотел.

Ответ №4:

Попробуйте: npm i node-forge@latest

Вы можете попробовать вышеуказанную команду, если npm update и удаление node_modules и package-lock.json . Он обновил node-forge до последней версии для меня.

Ответ №5:

Уязвимость в node-forge 0.9.0 была исправлена в самоподписанном недавно. Попробуйте обновить самоподписанный. Это устранило проблему для меня. Пожалуйста, проверьте ссылку для справки. Самоподписанная ссылка на github