Back to skill

Security audit

流程编辑专家

Security checks for vulnerabilities and agentic risk

Overview

This skill is a real Node-RED operations helper, but it gives an agent broad authority over live workflows, credentials, packages, Docker, backups, and restores without enough hard user-control gates.

Review this skill before installing if you will connect it to real Node-RED systems. Only use it for explicitly named Node-RED instances, keep production credentials out of plaintext files, require human confirmation before deploy/delete/restore/rollback/package/Docker actions, test package changes in staging, and store backups securely because they may include encrypted credentials and operational state.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
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: Medium

Vulnerable 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

  1. An attacker compromises an existing Node-RED package or one of its transitive dependencies, or introduces a confusingly named malicious package.
  2. A user asks the Agent to install a node or upgrade outdated nodes.
  3. The Agent follows install-node, `upgrade-no ...[truncated 1140 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require exact, reviewed package versions for every installation and reject unversioned package requests.
  2. Maintain a package allowlist containing approved names, versions, publishers, integrity hashes, and review status.
  3. Use a lockfile and verify package integrity hashes or registry signatures before installation.
  4. Restrict dependency resolution to an authenticated, trusted internal registry or proxy.
  5. Detect dependency-confusion and typosquatting risks by verifying package scope, ownership, provenance, and expected repository.
  6. Prohibit unattended bulk upgrades in production. Resolve and review each target version explicitly.
  7. Generate and scan an SBOM, including transitive dependencies, against current vulnerability intelligence.
  8. Install and test packages in an isolated staging environment before production promotion.
  9. Require explicit human approval before production installation, activation, removal, or upgrade.
  10. 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.
  11. Include the referenced implementation scripts in the audited package and add tests proving that allowlist, version, integrity, compatibility, and vulnerability checks fail closed.
  12. Preserve a known-good dependency snapshot and define a tested rollback process for package changes.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (8)

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The invocation criteria are overly broad and overlap with generic coding, debugging, and deployment requests, which can cause the agent to activate an operational skill in contexts where the user did not explicitly ask to manage live Node-RED infrastructure. Because this skill includes exec, write, and production deployment/rollback behavior, over-triggering materially increases the chance of unintended high-impact actions against real systems.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

Backup, restore, and cross-instance migration are described without a prominent warning that restore can overwrite flows, credentials, context, settings, and runtime state on the target instance. Given the skill's operations against potentially production Node-RED environments, this omission can lead to destructive data loss, configuration corruption, or propagation of unsafe automations into the wrong environment.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
87% confidence
Finding

The skill explicitly instructs modifying a .env file to repoint instances, and the broader document stores admin usernames/passwords in environment-backed configuration for multiple Node-RED instances. In an exec/write-capable skill, workflows that read or rewrite .env files materially increase the chance of credential exposure, accidental secret overwrite, or secret propagation into logs, backups, prompts, or version control.

Content

Scanner excerpt · SKILL.md (reported line 223)May include surrounding context.

用户:把开发实例的全部流程迁到新服务器 执行:

  1. --instance dev backup --output dev-full.json --include-context
  2. 修改 .env 指向新服务器
  3. --instance dev restore dev-full.json
  4. health 检查全部流程状态
text

Vague Triggers

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The capability scope uses an unbounded keyword list including broad terms like monitoring, logging, alerting, and deployment management, which makes accidental or inappropriate skill selection much more likely. In this context, incorrect selection is dangerous because the skill is authorized to read, write, and execute commands that can alter Node-RED instances and related infrastructure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The document presents deploy, update, delete, rollback, and state-changing operations as routine commands without a prominent upfront warning that these actions can impact live automation, production workflows, and connected devices. In an exec-capable skill, normalizing destructive operations without clear hazard framing increases the risk of accidental service interruption or unsafe real-world effects.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

At L284-L287, the file states '无需第三方 API Key', limiting required credentials to Node-RED admin auth and credentialsSecret. Later, L412-L414 says '部分功能需要配置对应平台的API Key', which contradicts the earlier setup guidance and changes the operator's understanding of required access.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Lines L426-L428 state the skill is classified as 'MD(纯Markdown指令,通过自然语言驱动Agent完成操作)', which implies no command execution is required. This directly contradicts L289-L291 and the many command examples throughout the file that explicitly require exec-driven CLI and Docker operations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The display name, summary, and description combine Chinese and English directives such as 'Use when ...' without stating a preferred language mode or giving the user a choice. This can impose a mixed-language interaction pattern that may not match user locale expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.