T08 · Insecure Dependencies
- Location
SKILL.md:118- Finding
Unpinned Third-Party Node Installation and Uncontrolled Bulk Upgrades
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 118–128
Vulnerability Type: Insecure third-party dependency installation and upgrade process
Risk Level: MediumVulnerable Code Snippet
text (请参考skill目录中的脚本文件) install-node node-red-contrib-http-request (请参考skill目录中的脚本文件) install-node node-red-contrib-influxdb --version 0.5.0 # ... # 启用/禁用/卸载 (请参考skill目录中的脚本文件) enable-node node-red-contrib-http-request (请参考skill目录中的脚本文件) disable-node node-red-contrib-http-request (请参考skill目录中的脚本文件) remove-node node-red-contrib-http-request # ... # 批量升级 (请参考skill目录中的脚本文件) upgrade-nodes --all # 升级所有过期节点 (请参考skill目录中的脚本文件) upgrade-nodes --outdated-only # 仅升级有新版的Technical Analysis
The Skill directs an execution-capable Agent to install Node-RED packages without consistently requiring exact versions, integrity hashes, trusted registry verification, or an approved package allowlist. It also provides commands for upgrading all installed nodes without pinning the resulting versions.
Node-RED extension packages contain executable JavaScript and run with the privileges of the Node-RED process. Consequently, installing an unexpectedly modified, compromised, dependency-confused, or malicious package can introduce arbitrary code into the automation runtime.
The document claims that compatibility and vulnerability checks occur before installation, but the project contains only
SKILL.md. The repeatedly referenced CLI scripts are absent, so those checks cannot be inspected or verified. The audit therefore cannot establish that package provenance, integrity, or vulnerability validation is actually enforced.Attack Path
- An attacker compromises an existing Node-RED package or one of its transitive dependencies, or introduces a confusingly named malicious package.
- A user asks the Agent to install a node or upgrade outdated nodes.
- The Agent follows
install-node, `upgrade-no ...[truncated 1140 chars]
- Remediation
View remediation
Remediation Suggestions
- Require exact, reviewed package versions for every installation and reject unversioned package requests.
- Maintain a package allowlist containing approved names, versions, publishers, integrity hashes, and review status.
- Use a lockfile and verify package integrity hashes or registry signatures before installation.
- Restrict dependency resolution to an authenticated, trusted internal registry or proxy.
- Detect dependency-confusion and typosquatting risks by verifying package scope, ownership, provenance, and expected repository.
- Prohibit unattended bulk upgrades in production. Resolve and review each target version explicitly.
- Generate and scan an SBOM, including transitive dependencies, against current vulnerability intelligence.
- Install and test packages in an isolated staging environment before production promotion.
- Require explicit human approval before production installation, activation, removal, or upgrade.
- Run Node-RED as a non-root account with a read-only filesystem where practical, minimal mounted secrets, restricted outbound networking, and no unnecessary process-execution permissions.
- Include the referenced implementation scripts in the audited package and add tests proving that allowlist, version, integrity, compatibility, and vulnerability checks fail closed.
- Preserve a known-good dependency snapshot and define a tested rollback process for package changes.
