T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:20
- Finding
- Unpinned npm Package Is Downloaded and Executed Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:4, 20-24` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw": {"requires": {"env": ["ARKITEK_API_KEY"], "bins": ["node", "npx"]}, "primaryEnv": "ARKITEK_API_KEY", "emoji": "📡", "homepage": "https://arkitekai.com", "install": [{"id": "npm", "kind": "node", "package": "arkitek-relay-skill", "bins": ["arkitek-relay-skill"], "label": "Install ArkiTek Relay (npm)"}]}} ``` ```markdown 3. Start the relay by running: ```text npx arkitek-relay-skill ``` ``` ### Technical Analysis The skill directs users to execute `arkitek-relay-skill` through `npx` without specifying an exact package version or an integrity digest. Depending on the local npm configuration and whether the package is already installed, `npx` can retrieve the current package release from an npm registry and immediately execute it. The effective executable code is not included in the audited project. Therefore, its behavior cannot be inspected or tied to the reviewed `SKILL.md`. The package contents may change after this skill has been reviewed. The project also provides no lockfile, package integrity value, trusted-registry restriction, or vendored source code. This creates a supply-chain trust boundary: compromise of the package publisher, registry account, package distribution process, or a future package release could cause different code to execute under the same documented command. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or configured package registry. 2. The attacker publishes a modified version of `arkitek-relay-skill`. 3. A user follows the skill instructions and runs `npx arkitek-relay-skill`. 4. `npx` downloads and executes the attacker-controlled package version. 5. The package runs with the permissions of the invoking user or agent process. 6. The malicious package may read accessible enviro ...[truncated 790 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the dependency to an exact, reviewed version rather than executing an unspecified current release. 2. Record and verify the expected package integrity digest. 3. Include a lockfile and enforce deterministic dependency resolution. 4. Prefer vendoring the reviewed relay source code into the skill so the executable implementation is included in the audit boundary. 5. Restrict package retrieval to an explicitly trusted registry. 6. Review package lifecycle scripts and disable them where they are not required. 7. Run the relay in a sandbox, container, or restricted operating-system account with minimal filesystem and network permissions. 8. Expose only `ARKITEK_API_KEY` to the relay process rather than inheriting the agent's complete environment. 9. Establish a controlled update process in which new package releases are reviewed before deployment. ]]>
