错误消息:Shelljs 0.8.3和更早版本容易受到命令注入的攻击

时间:2019-06-28 12:14:42

标签: angular angular8 shelljs

将项目更新为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.

有人对此有任何信息吗?

2 个答案:

答案 0 :(得分:1)

根据this thread,这可能是错误的警报。五月是关键词。您不能将用户输入传递给Shell模块。很多人这样做,这是一个巨大的问题。只要您从未将用户输入传递给exec,就可以使用GitHub工具禁用此警告。

答案 1 :(得分:1)

我是ShellJS的维护者。详细信息在this comment中,但总结如下:

  • 这不是ShellJS中的漏洞
  • 可能会以不安全的方式滥用shell.exec()child_process.exec(),因此直接依赖项应咨询我们的security guidelines
  • 正在使用ShellJS进行传递的模块应该信任其依赖关系以验证正确用法(先前的要点),或者通过其依赖关系树来验证这些依赖关系
    • 仅凭ShellJS查找软件包是不够的,因为child_process.exec()被滥用的可能性相同(它是核心节点API,因此不会出现在软件包锁定文件中)

先前的回答说这“可能是”漏洞,但是自那以后,我在Github线程上澄清了这是不是我们模块中的漏洞,并且直接依赖项需要确保它们安全可靠地使用我们的模块。