T08 · Insecure Dependencies
Error
- Location
- SKILL.md:89
- Finding
- Unpinned and Unverifiable Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md:89`, `SKILL.md:105`, `SKILL.md:384`, `SKILL.md:417`, `SKILL.md:466`; identical content appears in `SKILL-CLAWHUB.md` at the same lines **Vulnerability Type**: Supply-chain exposure through unpinned and unverifiable dependencies **Risk Level**: High ### Vulnerable Code ```bash # Install the package pip install banking-agent-os ``` ```bash # Install the SDK npm install openclaw-banking-agent-os ``` The package table contradicts the Python installation instruction: ```markdown | **PyPI** | `banking-agent-os` | Coming soon | | **npm** | `openclaw-banking-agent-os` | https://www.npmjs.com/package/openclaw-banking-agent-os | ``` The final installation instruction repeats the unverified package installation: ```markdown **Installation**: `pip install banking-agent-os` or `clawhub install banking-agent-os` ``` ### Technical Analysis The skill directs users to install mutable third-party packages without exact version constraints, integrity hashes, lockfiles, signatures, or vendored source. More importantly, the document recommends `pip install banking-agent-os` while its own platform table states that the PyPI package is “Coming soon.” This creates a dependency-confusion or package-takeover risk. If the expected PyPI name is unregistered, an unrelated party could register it. If it is later published or compromised, an attacker-controlled release could be selected because no version or hash is pinned. Python and npm package installation can execute package lifecycle logic, while importing the installed application executes package code with the user's privileges. The supplied artifact contains no implementation, package manifest, lockfile, release signature, or source code for these dependencies. Consequently, the behavior of the packages and the advertised banking controls cannot be verified from the audited project. ### Attack Path 1. A user follows ...[truncated 1351 chars]
- Remediation
- ## Remediation Suggestions 1. Do not recommend the Python package until it is published by a verified owner and its source can be reviewed. 2. Pin every dependency to an exact reviewed version rather than allowing the package manager to select the latest release. 3. For Python installations, provide a requirements or lock file with cryptographic hashes and require hash verification. 4. For npm installations, commit a reviewed lockfile and use reproducible installation commands such as `npm ci`. 5. Publish release provenance, checksums, signatures, and links connecting each registry artifact to a specific source commit. 6. Include the actual application source and package manifests in the skill artifact so security-sensitive behavior can be audited. 7. Perform package installation in an isolated virtual environment or container under a non-privileged account. 8. Verify registry ownership and reserve all documented package names before distributing installation instructions. 9. Apply the same corrections to `SKILL-CLAWHUB.md`, which is an identical duplicate of the affected instructions.
