在Ubuntu上安装最新的web 3版本1.3.5和npm版本7.12.0失败了,并出现了一些严重的错误。修复的典型时间是多长?
npm审计报告
下划线1.3.2 - 1.12.0
严重度:高
任意代码执行-[https://npmjs.com/advisories/1674](https://npmjs.com/advisories/1674%5C)无可用修复程序
节点模块/下划线
..web3-bzz〈=1.3.5个字符
..取决于下划线的易受攻击版本
..节点_模块/web 3-bzz
...网页3 *
....依赖于易受攻击的web 3-bzz版本
....取决于易受攻击的web 3-eth版本
....节点模块/web 3
..web3-核心助手 *
..取决于下划线的易受攻击版本
..节点模块/web 3-核心助手
......万维网3-eth-ens *
....取决于易受攻击的下划线版本
....依赖于易受攻击的web 3-core-helpers版本
....节点模块/web 3-eth-ens
......网络3-以太网 *
......取决于下划线的易受攻击版本
......取决于易受攻击的web 3-eth-ens版本
......节点模块/网络以太网
... web 3-提供商-http *
....依赖于易受攻击的web 3-core-helpers版本
....节点模块/web 3-提供程序-http
..web3-核心方法 *
..取决于下划线的易受攻击版本
..节点模块/web 3-核心方法
...web3核 *
....依赖于易受攻击的web 3-core-method版本
....节点模块/web 3核心
... web 3-以太网-个人 *
....依赖于易受攻击的web 3-core-method版本
....依赖于易受攻击的web 3-net版本
....节点模块/web 3-eth-personal
〈= www.example.com网站首页1.0.0-beta.55||大于等于1.2.0
....依赖于易受攻击的web 3-core-method版本
....节点模块/web 3-net
.....web3-嘘〈=1.3.5
......依赖于易受攻击的web 3-core-method版本
......取决于易受攻击的web 3-net版本
......节点模块/web 3-shh
..web3-核心请求管理器 *
..取决于下划线的易受攻击版本
..节点模块/web 3-核心请求管理器
..web3-核心订阅 *
..取决于下划线的易受攻击版本
..节点模块/web 3-核心订阅
..web3-以太网-abi *
..取决于下划线的易受攻击版本
..节点模块/web 3-eth-abi
..web3-以太网帐户 *
..取决于下划线的易受攻击版本
..节点模块/web 3-eth-accounts
..web3-以太网-合同 *
..取决于下划线的易受攻击版本
..节点模块/web 3-eth-contract
..web3-提供者-ipc *
..取决于下划线的易受攻击版本
..节点模块/web 3-提供程序-ipc
..web3-提供商-ws *
..取决于下划线的易受攻击版本
..节点模块/web 3-提供程序-ws
..web3-实用程序〉=1.0.0-beta.8
..取决于下划线的易受攻击版本
..节点模块/web 3-实用程序
... web 3-埃塞俄比亚-伊班 *
....依赖于易受攻击的web 3-utils版本
....节点模块/web 3-eth-iban
网络3 *
严重度:高
不安全的凭据存储-[https://npmjs.com/advisories/877](https://npmjs.com/advisories/877%5C)依赖于易受攻击的web 3-bzz版本
依赖于易受攻击的web 3-eth版本。
没有可用的修复程序
节点模块/web 3
21个高严重性漏洞\
2条答案
按热度按时间mwngjboj1#
我们在项目的CI管道中运行
npm ci && npm audit --audit-level=high
,今天遇到了这个下划线问题。已经有了GitHub issue:
我们现在正在等待新的版本(补丁)。在此之前,一个快速修复和可能的解决方案是在您的 package-lock.json 中搜索
underscore
,并手动更新那里的underscore
版本,因为npm audit fix
不会自动修复它。我们使用了1.9.1版本,并更新为1.12.1(在审计日志中列为稳定版本)。请针对每个出现的 * 下划线 * 更改以下行:
1.9.1
=〉1.12.1
;https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz
=〉https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz
;sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
=〉sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==
。这样
npm ci
将从 package-lock.json 获取版本,并且不会发生错误。但是npm install
将忽略它...以下是这两个命令之间的区别(如果需要):Difference between npm install and npm ci
更新
您也可以使用npm-force-resolutions软件包来设置 * 下划线 * 软件包的特定版本:
1.将
"resolutions": { "underscore": "1.12.1" }
添加到您的 package.json;1.(可选)添加每次在
npm install
启动之前运行的 preinstall 脚本:"scripts": { "preinstall": "npx npm-force-resolutions" }
;1.运行
npm install
或npx npm-force-resolutions
,在 package-lock.json 中查看您的更改。另外,npm audit
不会发现这些漏洞。最终更新
web3@1.3.6及其所有修复程序可用,您可以更新本地软件包。
iqxoj9l92#
谢谢,问题已经解决了。我在github上看到ChainSafe/web3.js包含了对下划线的修复,很快就会在NPM上发布。
此外,
npm ls -all | grep underscore
显示此库在第2、3和4级是嵌套依赖关系。感谢NPM上的npm-force-resolution链接,以了解背景、进一步的说明和警告,注意可能的安全漏洞。我有一个沙箱系统供学习。