我正在我的项目上运行snyk test命令,以识别第三方库中的漏洞,并在react@5.0.1->@svgr/webpack“中发现了以下漏洞:"^5.5.0”
nth-check@1.0.2
为了缓解这种情况,我在我的package.json中添加了依赖覆盖(或者在我的例子中是项目使用纱线时的依赖项解析),如下所示,将嵌套的依赖项替换为非易受攻击的版本:
"resolutions": {
"loader-utils": "^2.0.3",
"nth-check": "2.0.1",
"@svgr/webpack": "^6.2.1"
},还安装了纱线。我在项目包中确认,随着这些更改,最新版本的加载器-utils和nth-check正在安装中。我还检查了VS代码上的Snyk扩展,它似乎解决了漏洞问题。
但是,当我在github操作管道中运行snyk test时,如下所示:
- name: Run Snyk test scan
uses: snyk/actions/node@master
with:
command: test
args: --severity-threshold=high --fail-on=all它仍然报告nth-check和加载器-utils上的漏洞。我的假设是,这是因为Snyk操作在运行代码分析之前确实安装了依赖项。相反,它将检查package.json文件并逐层展开依赖项,从而使它认为我仍然将易受攻击的依赖项作为react脚本包中的嵌套依赖项,而实际上,package.json中的resolutions部分会覆盖这些依赖项。
是否有一种方法可以避免这种情况或迫使snyk考虑嵌套依赖覆盖?
发布于 2022-11-14 18:27:58
经过一些研究,我发现Snyk本身并不存在这样的问题。问题在于我们的冷嘲热讽。扫描被配置为在我们的主分支中的package.json上运行,而修复是在一个单独的分支上。一旦我们更新了snyk扫描以在正确的package.json上运行,它就会发现问题已经解决。
https://stackoverflow.com/questions/74394691
复制相似问题