【问题标题】:Uncontrolled Resource Consumption in ansi-htmlansi-html 中不受控制的资源消耗
【发布时间】:2021-12-09 01:35:16
【问题描述】:

我得到 Angular 项目中的一个高漏洞是“ansi-html 中不受控制的资源消耗”。

我还有一些此类高漏洞,但通过在 package.json 文件下添加“解决方案”部分和在脚本部分添加“预安装”:“npx npm-force-resolutions”来修复这些漏洞。我已经修复了这些漏洞,补丁中的版本类似于 'Patched in │ >=4.0.1' 。但这带有“没有可用的补丁”。 所以我有点困惑来解决这个问题。有谁知道,如何解决这个问题?谢谢

【问题讨论】:

    标签: node.js angular


    【解决方案1】:

    ansi-html 中不受控制的资源消耗 (CVE-2021-23424) 是项目作者无法修复的一个漏洞,因为它已被废弃并且不会有 ansi- 的补丁版本html

    您只需转到 package-lock.json 并找到以下行:

    "ansi-html": {
      "version": "0.0.7",
      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4="
    

    并替换为:

    "ansi-html-community": {
      "version": "0.0.8",
      "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
      "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="
    

    和这一行在同一个文件中:

    "dependencies": {
        "ansi-html": "^0.0.7",
    

    替换为:

    "dependencies": {
        "ansi-html-community": "^0.0.8",
    

    然后只需输入npm update 即可。

    您可以在此link 获得更多信息。

    并检查整个提交 here

    【讨论】:

    • 你不应该直接编辑package-lock.json。每次运行 npm install 时更改都会丢失,这很不方便,并且可能导致意外行为。 npm-force-resolutions 应该用作临时修复,直到您使用的依赖项的维护者更新他们的包以使用 ansi-html-community
    【解决方案2】:

    如果您不直接使用ansi-html,而是依赖于使用它的依赖项,则应改为在package.json 中设置resolutions 部分。 (您永远不应该直接编辑package-lock.json,因为它会在您每次运行npm install 时重新生成)。您只需要提供指向通常指定覆盖版本号的 tarball 的链接。 package.json 的解决方案部分应如下所示:

    "resolutions": {
        "ansi-html": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz"
    }
    

    更多详情请参考这篇文章:

    How to override a nested npm sub-dependency with a different package altogether (not just different package version number)?

    【讨论】:

      【解决方案3】:

      将您的 Angular 更新到最新版本(Angular 13 是目前​​的最新版本)将解决您的问题!干杯!

      【讨论】:

      • 即使我已更新到 Angular 13,我的 npm audit 上仍然有同样的错误
      • 有趣...如果你更新正确(请使用link),你的包锁中有"ansi-html-community": "^0.0.8"(不是“ansi-html”版本:0.0.7)。 json。因此,在您的情况下,删除 node-modules 文件夹、package-lock.json 并执行“npm install”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多