Ошибка потенциальной уязвимости Github для модуля узла hoek - PullRequest
0 голосов
/ 27 апреля 2018

Сегодня github показывает следующую ошибку в моем репозитории github:

Мы обнаружили потенциальную уязвимость в одном из ваших зависимостей. Зависимость, определенная в ./package-lock.json, известна уязвимости безопасности и должны быть обновлены.

При нажатии на кнопку Просмотр уязвимых зависимостей отображалось следующее сообщение:

модуль узла hoek до 5.0.3 страдает от Модификации Уязвимость в предполагаемых неизменяемых данных (MAID) с помощью слияния

До вчерашнего дня такой ошибки не было. Я не делал никаких изменений в этом хранилище более 5 дней. Любая идея, почему это происходит.

Ответы [ 8 ]

0 голосов
/ 30 декабря 2018

Да, пакет CVE-2018-3728 уязвим. Версии hoek до 4.2.1 и 5.0.3 уязвимы для загрязнения прототипа. Уязвимые версии hoek до версии 5.0.2. Исправление - обновить до версии 4.2.1, 5.0.3 или новее. Для получения дополнительной информации вы можете просмотреть запрос исправления здесь: https://github.com/hapijs/hoek/pull/231/commits/5aed1a8c4a3d55722d1c799f2368857bf418d6df

0 голосов
/ 09 июня 2018

Ничто из вышеперечисленного не сработало для меня. Моя зависимость была очень глубока в поддеревьях. Я сначала сделал npm ls hoek и получил что-то вроде этого:

├── hoek@5.0.3
└─┬ watson-developer-cloud@2.42.0
  ├─┬ request@2.83.0
  │ └─┬ hawk@6.0.2
  │   ├─┬ boom@4.3.1
  │   │ └── hoek@4.2.1  deduped
  │   ├─┬ cryptiles@3.1.2
  │   │ └─┬ boom@5.2.0
  │   │   └── hoek@4.2.1  deduped
  │   ├── hoek@4.2.1
  │   └─┬ sntp@2.1.0
  │     └── hoek@4.2.1  deduped
  └─┬ solr-client@0.7.0
    └─┬ request@2.81.0
      └─┬ hawk@3.1.3
        ├─┬ boom@2.10.1
        │ └── hoek@2.16.3  deduped
        ├── hoek@2.16.3
        └─┬ sntp@1.0.9
          └── hoek@2.16.3  deduped

Затем я увидел, что действительно нужно обновить это watson-developer-cloud, так как это то, что использует hoek на верхнем уровне.

Я тогда сделал npm install watson-developer-cloud@latest, и это решило это.

0 голосов
/ 12 июля 2018

Я перепробовал все вышеперечисленное, но у меня не получилось, поэтому я решил проверить основную причину.

Я побежал npm ls hoek, что дало мне:

├─┬ fuse-box@3.3.0
│ └─┬ request@2.81.0
│   └─┬ hawk@3.1.3
│     ├─┬ boom@2.10.1
│     │ └── hoek@2.16.3
│     ├── hoek@2.16.3
│     └─┬ sntp@1.0.9
│       └── hoek@2.16.3
└── hoek@5.0.3

Я заметил версию моего hawk против версии на npm hawk , поэтому я запустил npm i hawk --save. После чего я снова выполнил свои обычные команды git:

git add .
git commit -m 'whatever_message'
git push 

И вернулся к Github, и моя уязвимость безопасности была исправлена.

0 голосов
/ 25 мая 2018

Попробуйте запустить npm install hoek@4.2.x или npm install hoek@5 в вашем проекте.

Это установит требуемую последнюю версию hoek в package.json с перезаписью над версией hoek в package-lock.json.

0 голосов
/ 06 мая 2018

npm update должно работать только , если уязвимый пакет объявлен как прямая зависимость проекта . Но обычно (как в случае hoek) уязвимости лежат в тех пакетах, которые лежат в вашем дереве зависимостей .

Так как в моем случае я решил не обновлять все зависимости моего проекта (удаляя и перестраивая весь файл package-lock.json), я пошел на следующее (и, конечно же, больше времени подход):

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

Как:

npm r package-1 package-2 && npm i package-1@^1.2.3 package-2@^1.2.3

Этот подход будет работать только в том случае, если уязвимый пакет был исправлен и выпущен, а потребительские пакеты импортируют уязвимый с свободным номером версии, открытым для исправления или второстепенных версий .

0 голосов
/ 02 мая 2018

Нашел решение здесь .

В основном в git bash, cd в папку вашего проекта введите следующие коды:

npm i hoek  
npm uninstall hoek 
npm update 
npm install  

тогда

git add .
git commit -m 'update-hoek'
git push origin master 

Теперь снова проверьте страницу проекта GitHub, предупреждение должно исчезнуть.

Привет.

0 голосов
/ 27 апреля 2018

Я использовал npm update hoek && npm install hoek, и пакет был обновлен до 5.0.3.

После этого оповещение об уязвимости исчезло из моего репозитория github.

0 голосов
/ 27 апреля 2018

Я использовал: rm package-lock.json && npm update && npm install. Для меня это обновление hoek до 4.2.1, которое также содержит исправление ( за этот комментарий .)

Редактировать: В другом приложении я запустил rm package-lock.json и либо npm i hoek && npm up && npm i && npm un hoek, либо npm i hoek && npm un hoek && npm up && npm i (не могу вспомнить порядок), что больше соответствует этому комментарию (от JamesSingleton) ) .

(rm package-lock.json только если он существует.)

Редактировать: В третьем приложении я проверил npm outdated и обнаружил, что мне нужно обновить react-scripts-ts с 2.13.0 до 2.15.1. Для этого я обновил package.json вручную, а затем просто запустил npm i. После этого hoek обновится до 4.2.1. (специально для этого одного удерживающего / основного компонента).

Редактировать: Мое решение для Zurb Foundation 6 Сайт:

Я обновил все свои пакеты до их основных версий, используя npm outdated. Я тогда побежал:

npm i hoek@latest --save && npm up hoek

npm i boom hawk sntp uncss gulp-uncss --save && npm up boom hawk sntp uncss gulp-uncss && npm un boom hawk sntp gulp-uncss uncss --save

Было два противника; browser-sync : 2.23.7 и node-sass : 4.9.0, оба в их последних версиях. Неважно: предупреждение GitHub разрешено после коммита.

...