今天github在我的github存储库上显示以下错误:
我们发现了一个潜在的安全漏洞 依赖。已知./package-lock.json中定义的依赖项 安全漏洞,应该更新。
点击查看易受攻击的依赖关系按钮后显示以下消息:
5.0.3之前的hoek节点模块遭受修改 通过'合并'
的假定不可变数据(MAID)漏洞
直到昨天它没有出现这样的错误。我没有对这个存储库进行任何超过5天的推送。不知道为什么会这样。
答案 0 :(得分:8)
我用过:rm package-lock.json
&& npm update && npm install
。对我来说,这更新了hoek
到4.2.1
,其中还包含修复程序(per this comment。)
修改:在另一个应用中,我运行了rm package-lock.json
以及npm i hoek && npm up && npm i && npm un hoek
或npm i hoek && npm un hoek && npm up && npm i
(无法回想起订单),这是更加一致rm package-lock.json
3}}
(npm outdated
仅在它存在时才存在。)
修改:在第3个应用中,我检查了react-scripts-ts
,发现我必须将2.13.0
从2.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.x
或npm 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