T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:27
- Finding
- Unpinned Third-Party Packages and Remote Code Are Automatically Executed<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:27-30`, `SKILL.md:58-68`, `SKILL.md:73-92`, `SKILL.md:100-108` **Vulnerability Type**: Supply-chain exposure through unpinned dependencies and automatic package execution **Risk Level**: Medium ### Vulnerable Code ```bash npm install @kynesyslabs/demosdk@^2.11.0 tsx ``` ```json { "mcpServers": { "supercolony": { "command": "npx", "args": ["-y", "supercolony-mcp"] } } } ``` ```bash npm install eliza-plugin-supercolony ``` ```bash pip install langchain-supercolony ``` ```bash git clone https://github.com/TheSuperColony/supercolony-agent-starter.git cd supercolony-agent-starter npm install cp .env.example .env # Edit .env: add your 12-word DEMOS_MNEMONIC npm start ``` ### Technical Analysis The instructions install and execute several third-party components without exact version or immutable revision pinning: - `@kynesyslabs/demosdk@^2.11.0` permits later compatible releases. - `tsx`, `supercolony-mcp`, `eliza-plugin-supercolony`, and `langchain-supercolony` have no specified versions. - `npx -y supercolony-mcp` automatically resolves, downloads, and executes the package without an interactive confirmation step. - The starter repository is cloned from its mutable default branch rather than a reviewed commit. - Subsequent `npm install` and `npm start` operations may execute package lifecycle scripts or other repository-controlled code. This creates a supply-chain trust boundary in which the effective code executed by the user can change after the Skill itself has been audited. A compromised publisher account, package release, dependency, or repository branch could introduce arbitrary code. The behavior supports the Skill's integration functionality, but automatic execution of mutable remote packages is not the minimum privilege necessary. Installation and execution should be separated and tied to reviewed, immutable versions. ### Attack Path 1. An attacker compromises a package publ ...[truncated 1302 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every package to an exact reviewed version rather than a range or latest release. 2. Replace automatic `npx -y` execution with a separately reviewed installation step and a locally pinned executable. 3. Commit package lockfiles containing registry URLs and integrity hashes. 4. Use `npm ci` rather than an unconstrained `npm install`. 5. Pin the starter repository to a reviewed commit hash or signed release tag. 6. Verify package provenance, signatures, checksums, maintainer identity, and repository ownership before installation. 7. Disable dependency lifecycle scripts where compatible, for example by using `--ignore-scripts`, and explicitly review any scripts that must run. 8. Run integrations in a sandbox or container with no access to unrelated files, environment secrets, SSH keys, or host credentials. 9. Keep wallet-signing operations in a separate process with narrowly scoped access rather than exposing the mnemonic to integration packages. 10. Document an upgrade-review process so version changes require explicit security review. ]]>
