T08 · Insecure Dependencies
- Location
SKILL.md:25- Finding
Unpinned Third-Party Components Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 25-30 and line 80
Vulnerability Type: Supply-chain compromise through unpinned dependencies and custom nodes
Risk Level: HighVulnerable Code
bash cd /root/.openclaw/workspace git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txtThe skill also directs the agent to install dynamically selected custom nodes:
text - **Missing Nodes:** If the API returns an error about a missing class/node, locate the corresponding Custom Node repository, clone it into `ComfyUI/custom_nodes/`, and `pip install -r requirements.txt` inside its folder using the `venv`.Technical Analysis
The installation procedure clones the current default branch of ComfyUI without pinning it to a reviewed commit. It then installs dependencies from the repository's current
requirements.txtwithout requiring package hashes.The missing-node procedure is more exposed because it instructs the agent to locate and clone a repository based on a workflow error. No repository allowlist, required commit hash, signature verification, dependency hash verification, or manual review requirement is defined. A repository selected this way can contain malicious Python dependencies or custom-node code that ComfyUI imports and executes.
Use of a virtual environment prevents direct modification of the operating system's Python installation, but it does not sandbox the installed code. Processes running from the virtual environment ordinarily retain the filesystem, network, and user-account privileges of the agent that launches them.
Attack Path
- An attacker supplies a ComfyUI workflow that references an unavailable custom node.
- ComfyUI reports that the corresponding node class is missing.
- Following the skill instructions, the agent searches f ...[truncated 1249 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin ComfyUI to a reviewed full commit hash and check out that exact commit after cloning.
- Maintain an allowlist mapping supported custom-node classes to approved repository URLs and reviewed commit hashes.
- Do not discover and install arbitrary repositories solely from node names or search results.
- Require dependency lock files with exact versions and cryptographic hashes, and install with hash enforcement such as
pip install --require-hashes. - Verify repository provenance and review Python modules, package manifests, installation hooks, and dependency changes before installation.
- Separate installation from workflow execution and require explicit approval before adding a new custom node.
- Run ComfyUI under a dedicated least-privileged account or container with narrowly scoped filesystem access, restricted network access, no host credentials, and no access to unrelated workspaces.
- Record the repository URL, commit hash, dependency hashes, and review status for every installed component.
