针对hoek节点模块的Github潜在安全漏洞错误

时间:2018-04-27 01:33:58

标签: git github node-modules package.json package-lock.json

今天github在我的github存储库上显示以下错误:

  

我们发现了一个潜在的安全漏洞   依赖。已知./package-lock.json中定义的依赖项   安全漏洞,应该更新。

点击查看易受攻击的依赖关系按钮后显示以下消息:

  

5.0.3之前的hoek节点模块遭受修改   通过'合并'

的假定不可变数据(MAID)漏洞

直到昨天它没有出现这样的错误。我没有对这个存储库进行任何超过5天的推送。不知道为什么会这样。

8 个答案:

答案 0 :(得分:8)

我用过:rm package-lock.json&& npm update && npm install。对我来说,这更新了hoek4.2.1,其中还包含修复程序(per this comment。)

修改:在另一个应用中,我运行了rm package-lock.json以及npm i hoek && npm up && npm i && npm un hoeknpm i hoek && npm un hoek && npm up && npm i(无法回想起订单),这是更加一致rm package-lock.json 3}}

npm outdated仅在它存在时才存在。)

修改:在第3个应用中,我检查了react-scripts-ts,发现我必须将2.13.02.15.1升级到package.json。为此,我手动更新了npm i,然后只运行了hoek。完成后,4.2.1.更新为npm outdated(专门针对一个保留/主要组件)。

编辑:我的Zurb Foundation 6网站解决方案:

我使用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和{{1}},均为最新版本。无论如何:提交后GitHub警告已解决。

答案 1 :(得分:5)

我使用了npm update hoek&& npm install hoek,包已更新为5.0.3。

此后,我的github Repo中的漏洞警报消失了。

答案 2 :(得分:4)

如果将易受攻击的软件包声明为直接项目的依赖性,则

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

只有在修复和发布易受攻击的软件包并且使用软件包导入易受攻击的软件包loose version number open to patch or minor versions时,此方法才有效。

答案 3 :(得分:4)

以上都不适合我。我的hoek依赖在子树中很深。我第一次做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并解决了它。

答案 4 :(得分:1)

找到解决方案here

基本上在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项目页面,警告应该消失。

问候。

答案 5 :(得分:1)

尝试在项目中运行npm install hoek@4.2.xnpm install hoek@5

这会将所需的最新版本的hoek安装到package.json依赖项中,覆盖package-lock.json中的hoek版本。

答案 6 :(得分:0)

我尝试了以上所有方法,但对我没有帮助,所以我继续检查了我的根本原因。

我跑了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,我的安全漏洞已修复。

答案 7 :(得分:0)

是的,软件包CVE-2018-3728容易受到攻击。 4.2.1和5.0.3之前的hoek版本容易受到原型污染的影响。 受影响的hoek版本将保持在5.0.2版之前。该修补程序将更新为4.2.1、5.0.3版或更高版本。 有关更多信息,您可以在此处查看修复请求:https://github.com/hapijs/hoek/pull/231/commits/5aed1a8c4a3d55722d1c799f2368857bf418d6df