0

将我的项目更新到 Angular 8.0.3 后,我的 github 警报上出现此错误。

这是一个没有补救措施的漏洞。

没有可用的补丁版本。

Shelljs 0.8.3 and before are vulnerable to Command Injection.
Commands can be invoked from shell.exec(),
those commands will include input from external sources,
to be passed as arguments to system executables
and allowing an attacker to inject arbitrary commands.

有人有这方面的任何信息吗?

4

2 回答 2

1

根据 这个线程,这可能是一场虚惊。五月是关键词。您不能将用户输入传递给 shell 模块。许多人这样做,然后这是一个巨大的问题。只要您从不将用户输入传递给exec,那么您就可以使用 GitHub 工具来禁用此警告。

于 2019-06-28T13:45:12.437 回答
1

我是 ShellJS 的维护者。详细信息在此评论中,但总结一下:

  • 这不是 ShellJS 中的漏洞
  • 可能会被滥用shell.exec()child_process.exec()以不安全的方式使用,因此直接依赖项应查阅我们的安全指南
  • 传递使用 ShellJS 的模块应该信任它们的依赖关系以验证正确的使用(上一个要点),或者通过它们的依赖关系树来验证这些依赖关系
    • 使用 ShellJS 查找包是不够的,因为child_process.exec()同样有可能被滥用(而且它是一个核心节点 API,所以它不会出现在包锁定文件中)

之前的回答说这“可能是”一个漏洞,但我已经在 Github 线程上澄清这不是我们模块中的漏洞,直接依赖项需要确保他们安全可靠地使用我们的模块。

于 2019-07-09T06:20:45.073 回答