Npm audit fails with recent node-red

When running npm audit with recent node-red, I got the following error:

uuid  <14.0.0
Severity: moderate
uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided - https://github.com/advisories/GHSA-w5hq-g745-h8pq
fix available via `npm audit fix --force`
Will install node-red@1.3.7, which is a breaking change
node_modules/uuid
  @node-red/nodes  2.0.0-beta.1 - 5.0.0-beta.5
  Depends on vulnerable versions of uuid
  node_modules/@node-red/nodes
    node-red  2.0.0-beta.1 - 5.0.0-beta.5
    Depends on vulnerable versions of @node-red/nodes
    node_modules/node-red

The error seems to be related to old UUID formats. Are these formats used by node-red?

You can simply do npm ls uuid to find out what requires that library.

>npm ls uuid
node-red-master@5.0.0-beta.0 D:\src\nrnext
`-- (empty)

Use npm -g ls uuid if you have a standard node-red install.

Running from my test userDir folder:

npm ls uuid
node-red-userdir@3.0.2 D:\src\nrnext\data
`-- node-red-contrib-uibuilder@7.6.2 -> .\..\..\node-red-contrib-uibuilder
  `-- mermaid@11.14.0
    `-- uuid@11.1.0

Which is a dependency on the uibuilder documentation I think.

However, from that same location:

>npm audit
found 0 vulnerabilities

Which suggests that uuid <14.0.0 is incorrect.


However, running from my dev instance instead of my v5 instance, I get this from the userDir:

> npm ls uuid
node-red-userdir@2.2.0 D:\src\nr\data
+-- node-red-contrib-ical-events@2.2.5
| `-- kalender-events@0.28.3
|   +-- scrapegoat@1.0.1
|   | `-- request@2.88.2
|   |   `-- uuid@3.4.0
|   `-- uuid@8.3.2
+-- node-red-contrib-telegrambot@17.1.3
| `-- node-telegram-bot-api@0.66.0
|   `-- @cypress/request@3.0.10
|     `-- uuid@8.3.2 deduped
+-- node-red-contrib-uibuilder@7.6.2 -> .\..\..\node-red-contrib-uibuilder
| `-- mermaid@11.14.0
|   `-- uuid@11.1.0
`-- node-red-contrib-web-worldmap@5.6.2
  `-- sockjs@0.3.24
    `-- uuid@8.3.2

But, I still don't get any warning from npm audit about uuid.

Thanks for looking into this. That's really strange, it is different on my machine. I've setup an empty project (created with npm init) and installed node-red, only. I got the following:

node@nodejs ~/empty-project> npm install node-red
npm warn Unknown global config "python". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn deprecated uuid@9.0.1: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).

added 275 packages, and audited 276 packages in 21s

53 packages are looking for funding
  run `npm fund` for details

3 moderate severity vulnerabilities

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

And it is the same problematic uuid@9.0.1 package, that causes the failure here:

node@nodejs ~/empty-project> npm audit
npm warn Unknown global config "python". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
# npm audit report

uuid  <14.0.0
Severity: moderate
uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided - https://github.com/advisories/GHSA-w5hq-g745-h8pq
fix available via `npm audit fix --force`
Will install node-red@1.3.7, which is a breaking change
node_modules/uuid
  @node-red/nodes  2.0.0-beta.1 - 5.0.0-beta.5
  Depends on vulnerable versions of uuid
  node_modules/@node-red/nodes
    node-red  2.0.0-beta.1 - 5.0.0-beta.5
    Depends on vulnerable versions of @node-red/nodes
    node_modules/node-red

3 moderate severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

And indeed, there is uuid@9 installed. Here are the installed packages on my machine:

node@nodejs ~/empty-project> node --version
v24.14.1
node@nodejs ~/empty-project> npm --version
11.11.0
node@nodejs ~/empty-project> npm ls uuid
npm warn Unknown global config "python". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
empty-project@1.0.0 /home/node/empty-project
โ””โ”€โ”ฌ node-red@4.1.8
  โ””โ”€โ”ฌ @node-red/nodes@4.1.8
    โ””โ”€โ”€ uuid@9.0.1
node@nodejs ~/empty-project [1]> npm ls --tree --all
npm warn Unknown cli config "--tree". This will stop working in the next major version of npm.
npm warn Unknown global config "python". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
empty-project@1.0.0 /home/node/empty-project
โ””โ”€โ”ฌ node-red@4.1.8
  โ”œโ”€โ”ฌ @node-red/editor-api@4.1.8
  โ”‚ โ”œโ”€โ”€ @node-red/editor-client@4.1.8
  โ”‚ โ”œโ”€โ”€ @node-red/util@4.1.8 deduped
  โ”‚ โ”œโ”€โ”€ @node-rs/bcrypt@1.10.7 deduped
  โ”‚ โ”œโ”€โ”€ bcryptjs@3.0.3 deduped
  โ”‚ โ”œโ”€โ”ฌ body-parser@1.20.4
  โ”‚ โ”‚ โ”œโ”€โ”€ bytes@3.1.2
  โ”‚ โ”‚ โ”œโ”€โ”€ content-type@1.0.5 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ debug@2.6.9 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ depd@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ destroy@1.2.0
  โ”‚ โ”‚ โ”œโ”€โ”€ http-errors@2.0.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ iconv-lite@0.4.24
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ safer-buffer@2.1.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ on-finished@2.4.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ qs@6.14.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ raw-body@2.5.3
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bytes@3.1.2 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ http-errors@2.0.1 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ iconv-lite@0.4.24 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ unpipe@1.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ type-is@1.6.18 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ unpipe@1.0.0
  โ”‚ โ”œโ”€โ”€ clone@2.1.2
  โ”‚ โ”œโ”€โ”€ cors@2.8.5 deduped
  โ”‚ โ”œโ”€โ”ฌ express-session@1.18.2
  โ”‚ โ”‚ โ”œโ”€โ”€ cookie-signature@1.0.7
  โ”‚ โ”‚ โ”œโ”€โ”€ cookie@0.7.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ debug@2.6.9 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ depd@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ on-headers@1.1.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ parseurl@1.3.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ safe-buffer@5.2.1
  โ”‚ โ”‚ โ””โ”€โ”ฌ uid-safe@2.1.5
  โ”‚ โ”‚   โ””โ”€โ”€ random-bytes@1.0.0
  โ”‚ โ”œโ”€โ”€ express@4.22.1 deduped
  โ”‚ โ”œโ”€โ”ฌ memorystore@1.6.7
  โ”‚ โ”‚ โ”œโ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ””โ”€โ”ฌ lru-cache@4.1.5
  โ”‚ โ”‚   โ”œโ”€โ”€ pseudomap@1.0.2
  โ”‚ โ”‚   โ””โ”€โ”€ yallist@2.1.2
  โ”‚ โ”œโ”€โ”€ mime@3.0.0
  โ”‚ โ”œโ”€โ”ฌ multer@2.1.1
  โ”‚ โ”‚ โ”œโ”€โ”€ append-field@1.0.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ busboy@1.6.0
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ streamsearch@1.1.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ concat-stream@2.0.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ buffer-from@1.1.2
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ inherits@2.0.4 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ readable-stream@3.6.2
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ inherits@2.0.4 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ string_decoder@1.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ util-deprecate@1.0.2
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ typedarray@0.0.6
  โ”‚ โ”‚ โ””โ”€โ”€ type-is@1.6.18 deduped
  โ”‚ โ”œโ”€โ”€ mustache@4.2.0
  โ”‚ โ”œโ”€โ”ฌ oauth2orize@1.12.0
  โ”‚ โ”‚ โ”œโ”€โ”€ debug@2.6.9 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ uid2@0.0.4
  โ”‚ โ”‚ โ””โ”€โ”€ utils-merge@1.0.1 deduped
  โ”‚ โ”œโ”€โ”ฌ passport-http-bearer@1.0.1
  โ”‚ โ”‚ โ””โ”€โ”€ passport-strategy@1.0.0
  โ”‚ โ”œโ”€โ”ฌ passport-oauth2-client-password@0.1.2
  โ”‚ โ”‚ โ””โ”€โ”€ passport-strategy@1.0.0 deduped
  โ”‚ โ”œโ”€โ”ฌ passport@0.7.0
  โ”‚ โ”‚ โ”œโ”€โ”€ passport-strategy@1.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ pause@0.0.1
  โ”‚ โ”‚ โ””โ”€โ”€ utils-merge@1.0.1 deduped
  โ”‚ โ””โ”€โ”ฌ ws@7.5.10
  โ”‚   โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1
  โ”‚   โ””โ”€โ”€ UNMET OPTIONAL DEPENDENCY utf-8-validate@^5.0.2
  โ”œโ”€โ”ฌ @node-red/nodes@4.1.8
  โ”‚ โ”œโ”€โ”ฌ acorn-walk@8.3.5
  โ”‚ โ”‚ โ””โ”€โ”€ acorn@8.16.0 deduped
  โ”‚ โ”œโ”€โ”€ acorn@8.16.0
  โ”‚ โ”œโ”€โ”ฌ ajv@8.18.0
  โ”‚ โ”‚ โ”œโ”€โ”€ fast-deep-equal@3.1.3
  โ”‚ โ”‚ โ”œโ”€โ”€ fast-uri@3.1.0
  โ”‚ โ”‚ โ”œโ”€โ”€ json-schema-traverse@1.0.0
  โ”‚ โ”‚ โ””โ”€โ”€ require-from-string@2.0.2
  โ”‚ โ”œโ”€โ”€ body-parser@1.20.4 deduped
  โ”‚ โ”œโ”€โ”ฌ cheerio@1.0.0-rc.10
  โ”‚ โ”‚ โ”œโ”€โ”ฌ cheerio-select@1.6.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ css-select@4.3.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ boolbase@1.0.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ css-what@6.2.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domhandler@4.3.1 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domutils@2.8.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ nth-check@2.1.1
  โ”‚ โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ boolbase@1.0.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ css-what@6.2.2
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domelementtype@2.3.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domhandler@4.3.1 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ domutils@2.8.0
  โ”‚ โ”‚ โ”‚   โ”œโ”€โ”€ dom-serializer@1.4.1 deduped
  โ”‚ โ”‚ โ”‚   โ”œโ”€โ”€ domelementtype@2.3.0 deduped
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ domhandler@4.3.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ dom-serializer@1.4.1
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domelementtype@2.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domhandler@4.3.1 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ entities@2.2.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ domhandler@4.3.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domelementtype@2.3.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ htmlparser2@6.1.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domelementtype@2.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domhandler@4.3.1 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ domutils@2.8.0 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ entities@2.2.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ parse5-htmlparser2-tree-adapter@6.0.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ parse5@6.0.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ parse5@6.0.1
  โ”‚ โ”‚ โ””โ”€โ”€ tslib@2.8.1
  โ”‚ โ”œโ”€โ”€ content-type@1.0.5
  โ”‚ โ”œโ”€โ”ฌ cookie-parser@1.4.7
  โ”‚ โ”‚ โ”œโ”€โ”€ cookie-signature@1.0.6 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ cookie@0.7.2 deduped
  โ”‚ โ”œโ”€โ”€ cookie@0.7.2
  โ”‚ โ”œโ”€โ”€ cors@2.8.5 deduped
  โ”‚ โ”œโ”€โ”€ cronosjs@1.7.1
  โ”‚ โ”œโ”€โ”€ denque@2.1.0
  โ”‚ โ”œโ”€โ”ฌ form-data@4.0.4
  โ”‚ โ”‚ โ”œโ”€โ”€ asynckit@0.4.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ combined-stream@1.0.8
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ delayed-stream@1.0.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ es-set-tostringtag@2.1.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-errors@1.3.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ get-intrinsic@1.3.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ call-bind-apply-helpers@1.0.2
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ function-bind@1.1.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-define-property@1.0.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ es-object-atoms@1.1.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ function-bind@1.1.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ get-proto@1.0.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ dunder-proto@1.0.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ call-bind-apply-helpers@1.0.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ gopd@1.2.0 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ es-object-atoms@1.1.1 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ gopd@1.2.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ has-symbols@1.1.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hasown@2.0.3 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ math-intrinsics@1.1.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ has-tostringtag@1.0.2
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ has-symbols@1.1.0 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ hasown@2.0.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ hasown@2.0.3
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ function-bind@1.1.2
  โ”‚ โ”‚ โ””โ”€โ”ฌ mime-types@2.1.35
  โ”‚ โ”‚   โ””โ”€โ”€ mime-db@1.52.0
  โ”‚ โ”œโ”€โ”€ fs-extra@11.3.0 deduped
  โ”‚ โ”œโ”€โ”ฌ got@12.6.1
  โ”‚ โ”‚ โ”œโ”€โ”€ @sindresorhus/is@5.6.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ @szmarczak/http-timer@5.0.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ defer-to-connect@2.0.1
  โ”‚ โ”‚ โ”œโ”€โ”€ cacheable-lookup@7.0.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ cacheable-request@10.2.14
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @types/http-cache-semantics@4.2.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get-stream@6.0.1 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ http-cache-semantics@4.2.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ keyv@4.5.4
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ json-buffer@3.0.1
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ mimic-response@4.0.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ normalize-url@8.1.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ responselike@3.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ decompress-response@6.0.0
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ mimic-response@3.1.0
  โ”‚ โ”‚ โ”œโ”€โ”€ form-data-encoder@2.1.4
  โ”‚ โ”‚ โ”œโ”€โ”€ get-stream@6.0.1
  โ”‚ โ”‚ โ”œโ”€โ”ฌ http2-wrapper@2.2.1
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ quick-lru@5.1.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ resolve-alpn@1.2.1
  โ”‚ โ”‚ โ”œโ”€โ”€ lowercase-keys@3.0.0
  โ”‚ โ”‚ โ”œโ”€โ”€ p-cancelable@3.0.0
  โ”‚ โ”‚ โ””โ”€โ”ฌ responselike@3.0.0
  โ”‚ โ”‚   โ””โ”€โ”€ lowercase-keys@3.0.0 deduped
  โ”‚ โ”œโ”€โ”€ hash-sum@2.0.0
  โ”‚ โ”œโ”€โ”€ hpagent@1.2.0
  โ”‚ โ”œโ”€โ”ฌ https-proxy-agent@5.0.1
  โ”‚ โ”‚ โ”œโ”€โ”ฌ agent-base@6.0.2
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ””โ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚   โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”œโ”€โ”ฌ iconv-lite@0.6.3
  โ”‚ โ”‚ โ””โ”€โ”€ safer-buffer@2.1.2
  โ”‚ โ”œโ”€โ”€ is-utf8@0.2.1
  โ”‚ โ”œโ”€โ”ฌ js-yaml@4.1.1
  โ”‚ โ”‚ โ””โ”€โ”€ argparse@2.0.1
  โ”‚ โ”œโ”€โ”€ media-typer@1.1.0
  โ”‚ โ”œโ”€โ”ฌ mqtt@5.15.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ @types/readable-stream@4.0.23
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ @types/node@25.6.0
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ undici-types@7.19.2
  โ”‚ โ”‚ โ”œโ”€โ”ฌ @types/ws@8.18.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ @types/node@25.6.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ commist@3.2.0
  โ”‚ โ”‚ โ”œโ”€โ”€ concat-stream@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ”œโ”€โ”€ help-me@5.0.0
  โ”‚ โ”‚ โ”œโ”€โ”€ lru-cache@10.4.3
  โ”‚ โ”‚ โ”œโ”€โ”€ minimist@1.2.8 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ mqtt-packet@9.0.2
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ bl@6.1.6
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @types/readable-stream@4.0.23 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ buffer@6.0.3 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ inherits@2.0.4 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ readable-stream@4.7.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ process-nextick-args@2.0.1
  โ”‚ โ”‚ โ”œโ”€โ”ฌ number-allocator@1.0.14
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ debug@4.4.3
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ js-sdsl@4.3.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ readable-stream@4.7.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ abort-controller@3.0.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ event-target-shim@5.0.1
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ buffer@6.0.3
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ base64-js@1.5.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ieee754@1.2.1
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ events@3.3.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ process@0.11.10
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ string_decoder@1.3.0
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ safe-buffer@5.2.1
  โ”‚ โ”‚ โ”œโ”€โ”€ rfdc@1.4.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ socks@2.8.8
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ip-address@10.2.0
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ smart-buffer@4.2.0
  โ”‚ โ”‚ โ”œโ”€โ”€ split2@4.2.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ worker-timers@8.0.31
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ worker-timers-broker@8.0.16
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ broker-factory@3.1.14
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fast-unique-numbers@9.0.27 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ worker-factory@7.0.49 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ fast-unique-numbers@9.0.27
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ worker-timers-worker@9.0.14 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ worker-timers-worker@9.0.14
  โ”‚ โ”‚ โ”‚   โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚   โ”œโ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”ฌ worker-factory@7.0.49
  โ”‚ โ”‚ โ”‚     โ”œโ”€โ”€ @babel/runtime@7.29.2 deduped
  โ”‚ โ”‚ โ”‚     โ”œโ”€โ”€ fast-unique-numbers@9.0.27 deduped
  โ”‚ โ”‚ โ”‚     โ””โ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”‚ โ””โ”€โ”ฌ ws@8.20.0
  โ”‚ โ”‚   โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1
  โ”‚ โ”‚   โ””โ”€โ”€ UNMET OPTIONAL DEPENDENCY utf-8-validate@>=5.0.2
  โ”‚ โ”œโ”€โ”€ multer@2.1.1 deduped
  โ”‚ โ”œโ”€โ”€ mustache@4.2.0 deduped
  โ”‚ โ”œโ”€โ”€ node-watch@0.7.4
  โ”‚ โ”œโ”€โ”€ on-headers@1.1.0
  โ”‚ โ”œโ”€โ”ฌ raw-body@3.0.0
  โ”‚ โ”‚ โ”œโ”€โ”€ bytes@3.1.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ http-errors@2.0.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ depd@2.0.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ inherits@2.0.4 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ setprototypeof@1.2.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ statuses@2.0.1
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ toidentifier@1.0.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ iconv-lite@0.6.3 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ unpipe@1.0.0 deduped
  โ”‚ โ”œโ”€โ”ฌ tough-cookie@5.1.2
  โ”‚ โ”‚ โ””โ”€โ”ฌ tldts@6.1.86
  โ”‚ โ”‚   โ””โ”€โ”€ tldts-core@6.1.86
  โ”‚ โ”œโ”€โ”€ uuid@9.0.1
  โ”‚ โ”œโ”€โ”€ ws@7.5.10 deduped
  โ”‚ โ””โ”€โ”ฌ xml2js@0.6.2
  โ”‚   โ”œโ”€โ”€ sax@1.6.0
  โ”‚   โ””โ”€โ”€ xmlbuilder@11.0.1
  โ”œโ”€โ”ฌ @node-red/runtime@4.1.8
  โ”‚ โ”œโ”€โ”ฌ @node-red/registry@4.1.8
  โ”‚ โ”‚ โ”œโ”€โ”€ @node-red/util@4.1.8 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ clone@2.1.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ fs-extra@11.3.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ semver@7.7.4 deduped
  โ”‚ โ”‚ โ”œโ”€โ”ฌ tar@7.5.12
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ @isaacs/fs-minipass@4.0.1
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ minipass@7.1.3 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ chownr@3.0.0
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ minipass@7.1.3
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”ฌ minizlib@3.1.0
  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ minipass@7.1.3 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ yallist@5.0.0
  โ”‚ โ”‚ โ””โ”€โ”€ uglify-js@3.19.3
  โ”‚ โ”œโ”€โ”€ @node-red/util@4.1.8 deduped
  โ”‚ โ”œโ”€โ”ฌ async-mutex@0.5.0
  โ”‚ โ”‚ โ””โ”€โ”€ tslib@2.8.1 deduped
  โ”‚ โ”œโ”€โ”€ clone@2.1.2 deduped
  โ”‚ โ”œโ”€โ”€ cronosjs@1.7.1 deduped
  โ”‚ โ”œโ”€โ”€ express@4.22.1 deduped
  โ”‚ โ”œโ”€โ”€ fs-extra@11.3.0 deduped
  โ”‚ โ”œโ”€โ”€ got@12.6.1 deduped
  โ”‚ โ”œโ”€โ”€ json-stringify-safe@5.0.1
  โ”‚ โ”œโ”€โ”€ rfdc@1.4.1
  โ”‚ โ””โ”€โ”€ semver@7.7.4 deduped
  โ”œโ”€โ”ฌ @node-red/util@4.1.8
  โ”‚ โ”œโ”€โ”ฌ chalk@4.1.2
  โ”‚ โ”‚ โ”œโ”€โ”ฌ ansi-styles@4.3.0
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”ฌ color-convert@2.0.1
  โ”‚ โ”‚ โ”‚   โ””โ”€โ”€ color-name@1.1.4
  โ”‚ โ”‚ โ””โ”€โ”ฌ supports-color@7.2.0
  โ”‚ โ”‚   โ””โ”€โ”€ has-flag@4.0.0
  โ”‚ โ”œโ”€โ”€ fs-extra@11.3.0 deduped
  โ”‚ โ”œโ”€โ”ฌ i18next@25.8.14
  โ”‚ โ”‚ โ”œโ”€โ”€ @babel/runtime@7.29.2
  โ”‚ โ”‚ โ””โ”€โ”€ UNMET OPTIONAL DEPENDENCY typescript@^5
  โ”‚ โ”œโ”€โ”€ json-stringify-safe@5.0.1 deduped
  โ”‚ โ”œโ”€โ”€ jsonata@2.0.6
  โ”‚ โ”œโ”€โ”€ lodash.clonedeep@4.5.0
  โ”‚ โ”œโ”€โ”ฌ moment-timezone@0.5.48
  โ”‚ โ”‚ โ””โ”€โ”€ moment@2.30.1 deduped
  โ”‚ โ””โ”€โ”€ moment@2.30.1
  โ”œโ”€โ”ฌ @node-rs/bcrypt@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-android-arm-eabi@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-android-arm64@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-darwin-arm64@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-darwin-x64@1.10.7
  โ”‚ โ”œโ”€โ”€ @node-rs/bcrypt-freebsd-x64@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-linux-arm-gnueabihf@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-linux-arm64-gnu@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-linux-arm64-musl@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-linux-x64-gnu@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-linux-x64-musl@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-wasm32-wasi@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-win32-arm64-msvc@1.10.7
  โ”‚ โ”œโ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-win32-ia32-msvc@1.10.7
  โ”‚ โ””โ”€โ”€ UNMET OPTIONAL DEPENDENCY @node-rs/bcrypt-win32-x64-msvc@1.10.7
  โ”œโ”€โ”ฌ basic-auth@2.0.1
  โ”‚ โ””โ”€โ”€ safe-buffer@5.1.2
  โ”œโ”€โ”€ bcryptjs@3.0.3
  โ”œโ”€โ”ฌ cors@2.8.5
  โ”‚ โ”œโ”€โ”€ object-assign@4.1.1
  โ”‚ โ””โ”€โ”€ vary@1.1.2
  โ”œโ”€โ”ฌ express@4.22.1
  โ”‚ โ”œโ”€โ”ฌ accepts@1.3.8
  โ”‚ โ”‚ โ”œโ”€โ”€ mime-types@2.1.35 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ negotiator@0.6.3
  โ”‚ โ”œโ”€โ”€ array-flatten@1.1.1
  โ”‚ โ”œโ”€โ”€ body-parser@1.20.4 deduped
  โ”‚ โ”œโ”€โ”ฌ content-disposition@0.5.4
  โ”‚ โ”‚ โ””โ”€โ”€ safe-buffer@5.2.1
  โ”‚ โ”œโ”€โ”€ content-type@1.0.5 deduped
  โ”‚ โ”œโ”€โ”€ cookie-signature@1.0.6
  โ”‚ โ”œโ”€โ”€ cookie@0.7.2 deduped
  โ”‚ โ”œโ”€โ”ฌ debug@2.6.9
  โ”‚ โ”‚ โ””โ”€โ”€ ms@2.0.0
  โ”‚ โ”œโ”€โ”€ depd@2.0.0
  โ”‚ โ”œโ”€โ”€ encodeurl@2.0.0
  โ”‚ โ”œโ”€โ”€ escape-html@1.0.3
  โ”‚ โ”œโ”€โ”€ etag@1.8.1
  โ”‚ โ”œโ”€โ”ฌ finalhandler@1.3.2
  โ”‚ โ”‚ โ”œโ”€โ”€ debug@2.6.9 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ encodeurl@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ escape-html@1.0.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ on-finished@2.4.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ parseurl@1.3.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ statuses@2.0.2 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ unpipe@1.0.0 deduped
  โ”‚ โ”œโ”€โ”€ fresh@0.5.2
  โ”‚ โ”œโ”€โ”ฌ http-errors@2.0.1
  โ”‚ โ”‚ โ”œโ”€โ”€ depd@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ inherits@2.0.4
  โ”‚ โ”‚ โ”œโ”€โ”€ setprototypeof@1.2.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ statuses@2.0.2 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ toidentifier@1.0.1
  โ”‚ โ”œโ”€โ”€ merge-descriptors@1.0.3
  โ”‚ โ”œโ”€โ”€ methods@1.1.2
  โ”‚ โ”œโ”€โ”ฌ on-finished@2.4.1
  โ”‚ โ”‚ โ””โ”€โ”€ ee-first@1.1.1
  โ”‚ โ”œโ”€โ”€ parseurl@1.3.3
  โ”‚ โ”œโ”€โ”€ path-to-regexp@0.1.13
  โ”‚ โ”œโ”€โ”ฌ proxy-addr@2.0.7
  โ”‚ โ”‚ โ”œโ”€โ”€ forwarded@0.2.0
  โ”‚ โ”‚ โ””โ”€โ”€ ipaddr.js@1.9.1
  โ”‚ โ”œโ”€โ”ฌ qs@6.14.2
  โ”‚ โ”‚ โ””โ”€โ”ฌ side-channel@1.1.0
  โ”‚ โ”‚   โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚   โ”œโ”€โ”€ object-inspect@1.13.4
  โ”‚ โ”‚   โ”œโ”€โ”ฌ side-channel-list@1.0.1
  โ”‚ โ”‚   โ”‚ โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚   โ”‚ โ””โ”€โ”€ object-inspect@1.13.4 deduped
  โ”‚ โ”‚   โ”œโ”€โ”ฌ side-channel-map@1.0.1
  โ”‚ โ”‚   โ”‚ โ”œโ”€โ”ฌ call-bound@1.0.4
  โ”‚ โ”‚   โ”‚ โ”‚ โ”œโ”€โ”€ call-bind-apply-helpers@1.0.2 deduped
  โ”‚ โ”‚   โ”‚ โ”‚ โ””โ”€โ”€ get-intrinsic@1.3.0 deduped
  โ”‚ โ”‚   โ”‚ โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚   โ”‚ โ”œโ”€โ”€ get-intrinsic@1.3.0 deduped
  โ”‚ โ”‚   โ”‚ โ””โ”€โ”€ object-inspect@1.13.4 deduped
  โ”‚ โ”‚   โ””โ”€โ”ฌ side-channel-weakmap@1.0.2
  โ”‚ โ”‚     โ”œโ”€โ”€ call-bound@1.0.4 deduped
  โ”‚ โ”‚     โ”œโ”€โ”€ es-errors@1.3.0 deduped
  โ”‚ โ”‚     โ”œโ”€โ”€ get-intrinsic@1.3.0 deduped
  โ”‚ โ”‚     โ”œโ”€โ”€ object-inspect@1.13.4 deduped
  โ”‚ โ”‚     โ””โ”€โ”€ side-channel-map@1.0.1 deduped
  โ”‚ โ”œโ”€โ”€ range-parser@1.2.1
  โ”‚ โ”œโ”€โ”€ safe-buffer@5.2.1
  โ”‚ โ”œโ”€โ”ฌ send@0.19.2
  โ”‚ โ”‚ โ”œโ”€โ”€ debug@2.6.9 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ depd@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ destroy@1.2.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ encodeurl@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ escape-html@1.0.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ etag@1.8.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ fresh@0.5.2 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ http-errors@2.0.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ mime@1.6.0
  โ”‚ โ”‚ โ”œโ”€โ”€ ms@2.1.3
  โ”‚ โ”‚ โ”œโ”€โ”€ on-finished@2.4.1 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ range-parser@1.2.1 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ statuses@2.0.2 deduped
  โ”‚ โ”œโ”€โ”ฌ serve-static@1.16.3
  โ”‚ โ”‚ โ”œโ”€โ”€ encodeurl@2.0.0 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ escape-html@1.0.3 deduped
  โ”‚ โ”‚ โ”œโ”€โ”€ parseurl@1.3.3 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ send@0.19.2 deduped
  โ”‚ โ”œโ”€โ”€ setprototypeof@1.2.0
  โ”‚ โ”œโ”€โ”€ statuses@2.0.2
  โ”‚ โ”œโ”€โ”ฌ type-is@1.6.18
  โ”‚ โ”‚ โ”œโ”€โ”€ media-typer@0.3.0
  โ”‚ โ”‚ โ””โ”€โ”€ mime-types@2.1.35 deduped
  โ”‚ โ”œโ”€โ”€ utils-merge@1.0.1
  โ”‚ โ””โ”€โ”€ vary@1.1.2 deduped
  โ”œโ”€โ”ฌ fs-extra@11.3.0
  โ”‚ โ”œโ”€โ”€ graceful-fs@4.2.11
  โ”‚ โ”œโ”€โ”ฌ jsonfile@6.2.1
  โ”‚ โ”‚ โ”œโ”€โ”€ graceful-fs@4.2.11 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ universalify@2.0.1 deduped
  โ”‚ โ””โ”€โ”€ universalify@2.0.1
  โ”œโ”€โ”ฌ node-red-admin@4.1.5
  โ”‚ โ”œโ”€โ”€ @node-rs/bcrypt@1.10.7 deduped
  โ”‚ โ”œโ”€โ”€ ansi-colors@4.1.3
  โ”‚ โ”œโ”€โ”ฌ axios@1.15.0
  โ”‚ โ”‚ โ”œโ”€โ”€ follow-redirects@1.16.0
  โ”‚ โ”‚ โ”œโ”€โ”ฌ form-data@4.0.5
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ asynckit@0.4.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ combined-stream@1.0.8 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ es-set-tostringtag@2.1.0 deduped
  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hasown@2.0.3 deduped
  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ mime-types@2.1.35 deduped
  โ”‚ โ”‚ โ””โ”€โ”€ proxy-from-env@2.1.0
  โ”‚ โ”œโ”€โ”€ bcryptjs@3.0.3 deduped
  โ”‚ โ”œโ”€โ”ฌ cli-table@0.3.11
  โ”‚ โ”‚ โ””โ”€โ”€ colors@1.0.3
  โ”‚ โ”œโ”€โ”ฌ enquirer@2.4.1
  โ”‚ โ”‚ โ”œโ”€โ”€ ansi-colors@4.1.3 deduped
  โ”‚ โ”‚ โ””โ”€โ”ฌ strip-ansi@6.0.1
  โ”‚ โ”‚   โ””โ”€โ”€ ansi-regex@5.0.1
  โ”‚ โ”œโ”€โ”€ minimist@1.2.8
  โ”‚ โ”œโ”€โ”€ mustache@4.2.0 deduped
  โ”‚ โ””โ”€โ”ฌ read@3.0.1
  โ”‚   โ””โ”€โ”€ mute-stream@1.0.0
  โ”œโ”€โ”ฌ nopt@5.0.0
  โ”‚ โ””โ”€โ”€ abbrev@1.1.1
  โ””โ”€โ”€ semver@7.7.4

OK, I was using Windows 11. Just tried on a test install on Debian Linux and got a completely different result. This with just Node-RED v4.1.8

~/nr-public$ npm audit
# npm audit report

uuid  <14.0.0
Severity: moderate
uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided - https://github.com/advisories/GHSA-w5hq-g745-h8pq
fix available via `npm audit fix --force`
Will install node-red@1.3.7, which is a breaking change
node_modules/uuid
  @node-red/nodes  2.0.0-beta.1 - 5.0.0-beta.5
  Depends on vulnerable versions of uuid
  node_modules/@node-red/nodes
    node-red  2.0.0-beta.1 - 5.0.0-beta.5
    Depends on vulnerable versions of @node-red/nodes
    node_modules/node-red

3 moderate severity vulnerabilities

Weird that Windows and Linux have very different results.

Good that the issue can be replicated. Is Node-RED affected by this security vulnerability?

Hard to say really. I don't really know what the vulnerability actually is.

You could always try to see if an override (see the package.json documentation on overrides) to a new version of uuid will work. Hard to say without trying it.

I think, that the gap between the used v9 and the current version (v14) looks quite big. Even if it is possible to replace the software package, users won't be sure, if the faulty generated UUIDs aren't baked into flows.json somehow. Someone with more insights into Node-RED is needed here.

I agree, just might be worth a try though - but maybe with v12 - so not the latest. I did take a quick look at the breaking changes and I'm pretty sure v14 wouldn't work.

The real question is whether the call(s) to uuid are buried well enough to mitigate the risk. And I don't know the answer I'm afraid. I used to have a direct call to a uuid in the uibuilder code but I got rid of it. Unfortunately, there is a hidden dependency in the docs that I can't get rid of as yet.

The uuid problem has settled with latest Node-RED (4.1.9). But now, there are other findings:

brace-expansion  2.0.0 - 2.0.2
Severity: moderate
brace-expansion: Zero-step sequence causes process hang and memory exhaustion - https://github.com/advisories/GHSA-f886-m6hf-6m8v
fix available via `npm audit fix`
node_modules/npm/node_modules/brace-expansion
ip-address  <=10.1.0
Severity: moderate
ip-address has XSS in Address6 HTML-emitting methods - https://github.com/advisories/GHSA-v2v4-37r5-5v8g
fix available via `npm audit fix`
node_modules/npm/node_modules/ip-address
picomatch  4.0.0 - 4.0.3
Severity: high
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching - https://github.com/advisories/GHSA-3v7f-55p6-f55p
Picomatch has a ReDoS vulnerability via extglob quantifiers - https://github.com/advisories/GHSA-c2c7-rcm5-vvqj

Not uncommon I'm afraid when using complex node.js apps.

Unless you are in a high-security, highly-sensitive or high-audit environment, you will likely drive yourself crazy trying to chase these down. If you are in one of those environments, you will very likely need the support of some specialist expertise in order to work out whether those issues are actually relevant.

@augjoh the audit warnings in 4.1.9 are due to the fact we now bundle the npm module in Node-RED to address other security issues. They have have yet published a maintenance release on their 10.x stream to pickup these updates. We can't update to their 11.x stream due to the older node.js support requirements. Node-RED 5 doesn't have the same constraints so has already moved to npm 11. Not much we can do until they publish an update.