Yarn Upgrade不会删除yarn.lock文件中的js-yaml软件包的旧版本

时间:2019-07-18 10:06:12

标签: ruby-on-rails yarnpkg yarn-lock.json

rails应用上的yarn.lock文件中,我有一个针对js-yaml的严重git hub安全漏洞。

Remediation
Upgrade js-yaml to version 3.13.1 or later. For example:

js-yaml@^3.13.1:

  version "3.13.1" 

我已经运行yarn upgrade js-yaml,它更新了package.json中的版本:"js-yaml": "^3.13.1",

但是问题仍然在github中显示。

我还尝试了删除yarn.lock并运行yarn install以及使用重复数据删除工具yarn-deduplicate ./yarn.lock(在其他情况下也适用于我。但是,这种威望仍然存在。

这是js-yaml在我的yarn.lock文件中的样子:

js-yaml@^3.12.0, js-yaml@^3.13.1:
  version "3.13.1"
  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
  dependencies:
    argparse "^1.0.7"
    esprima "^4.0.0"

js-yaml@~3.7.0:
  version "3.7.0"
  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
  integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=
  dependencies:
    argparse "^1.0.7"
    esprima "^2.6.0" 

我想知道:

  1. 如何解决此特定问题

  2. 使yarn.lock文件保持最新状态以避免安全漏洞的最佳实践是什么。当我yarn upgrade(EG https://github.com/yarnpkg/yarn/issues/3967)也许我不是唯一一个遇到重复问题的人时,也许我可以做些不同的事情吗?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的情况。如果您运行yarn why js-yaml,可能会发现js-yaml是嵌套的依赖项,因此在升级js-yaml时,还有另一个依赖项(例如,我是css-loader),它需要较旧的js-yaml版本。一种解决方案(尽管可能不是最好的方法,对不起)是运行您的升级:yarn upgrade js-yaml@version,然后在其中添加js-yaml作为解决方案 package.json。将您的更改推送到github,漏洞错误应该消失。有关分辨率的信息,请参见此link