19

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

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

单击查看易受攻击的依赖项按钮时,显示以下消息:

5.0.3 之前的 hoek 节点模块遭受通过“合并”修改假定不可变数据 (MAID) 漏洞

直到昨天它还没有显示这样的错误。我已经超过 5 天没有对此存储库进行任何推送。知道为什么会这样。

4

8 回答 8

8

我用过:rm package-lock.json&& npm update && npm install。对我来说,这已更新hoek4.2.1,其中还包含修复(根据此评论。)

编辑:在另一个应用程序中,我跑rm package-lock.jsonnpm i hoek && npm up && npm i && npm un hoekor npm i hoek && npm un hoek && npm up && npm i(不记得顺序),这更符合这个评论(来自 JamesSingleton)

rm package-lock.json仅当它存在时。)

编辑:在第三个应用程序中,我检查并发现我必须从npm outdated升级到. 为此,我手动更新了,然后运行​​. 完成后,更新为(专门针对那个坚持/主要组件)。react-scripts-ts2.13.02.15.1package.jsonnpm ihoek4.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.7node-sass : 4.9.0, 都是最新版本。没关系:提交后解决了 GitHub 警告。

于 2018-04-27T08:24:43.627 回答
5

我使用了 npm update hoek && npm install hoek 并将软件包更新到 5.0.3。

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

于 2018-04-27T10:06:26.787 回答
5

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

这种方法只有在易受攻击的软件包被修复和发布并且消费软件包导入易受攻击的软件包时才有效,该易受攻击的版本号松散,对补丁或次要版本开放

于 2018-05-05T22:34:03.460 回答
5

以上都不适合我。我的 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,这解决了它。

于 2018-06-09T01:11:13.107 回答
1

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

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

于 2018-05-25T07:30:34.040 回答
0

在这里找到了解决方案。

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

问候。

于 2018-05-02T11:35:19.570 回答
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

我注意到我的版本与npm hawkhawk上的版本相对,所以我跑了。之后我再次运行正常的 git 命令:npm i hawk --save

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

然后回到 Github,我的安全漏洞得到了修复。

于 2018-07-12T00:54:20.430 回答
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

于 2018-12-30T16:59:34.763 回答