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

Github potential security vulnerability error for hoek node module

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

We found a potential security vulnerability in one of your dependencies. A dependency defined in ./package-lock.json has known security vulnerabilities and should be updated.

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

hoek node module before 5.0.3 suffers from a Modification of Assumed-Immutable Data (MAID) vulnerability via 'merge'

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

我使用了:rm package-lock.json && npm update && npm install。对我来说,这将 hoek 更新为 4.2.1,其中还包含修复 (per this comment.)

编辑: 在另一个应用程序中,我 运行 rm package-lock.jsonnpm i hoek && npm up && npm i && npm un hoeknpm i hoek && npm un hoek && npm up && npm i(不记得了order),更符合 with this comment (from JamesSingleton).

(rm package-lock.json只有存在才有效。)

编辑: 在第三个应用程序中,我检查了 npm outdated,发现我必须将 react-scripts-ts2.13.0 升级到 2.15.1。为此,我手动更新了 package.json,然后只更新了 运行 npm i。完成后,hoek 更新为 4.2.1.(专门针对那个 holdout/primary 组件)。

编辑: 我对 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 警告已解决。

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

此后漏洞警报从我的 github 回购中消失了。

找到解决方案here

基本上在gitbash,cd到你的项目文件夹,输入以下代码:

npm i hoek  
npm uninstall hoek 
npm update 
npm install  

然后

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

现在再次检查您的 GitHub 项目页面,警告应该会消失。

此致。

npm update 应该仅在 易受攻击的包被声明为直接项目的依赖项时起作用 。但通常(在 hoek 的情况下) 漏洞位于 存在于 子依赖树 中的那些包中。 =16=]

因为在我的例子中我决定不更新我项目的所有依赖项(通过删除和重建整个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.

导入易受攻击的包时,此方法才有效

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

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

中的 hoek 版本

None 以上对我有用。我对 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 并解决了它。

我尝试了以上所有方法,但都不适合我,所以我继续检查我的根本原因。

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

是的,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