T08 · Insecure Dependencies
Error
- Location
- SKILL.md:91
- Finding
- Mutable npm Package Is Downloaded and Executed for Credential Operations<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 91, 100, 115-126, 172-180, and 221 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: High ### Vulnerable Code ```bash npx @vincentai/cli@latest secret list --type CREDENTIALS ``` ```bash npx @vincentai/cli@latest secret create --type CREDENTIALS --memo "Acme API credentials" ``` ```bash npx @vincentai/cli@latest secret set-value --key-id <KEY_ID> --value '{"username": "alice", "password": "hunter2"}' ``` ```bash npx @vincentai/cli@latest secret set-value --key-id <KEY_ID> --value "sk-my-third-party-api-key" ``` ```bash npx @vincentai/cli@latest secret env --key-id <KEY_ID> --env-var ACME_API_KEY ``` ```bash npx @vincentai/cli@latest secret relink --token <TOKEN_FROM_USER> ``` ### Technical Analysis The Skill repeatedly instructs the agent to run `npx @vincentai/cli@latest`. The `latest` npm tag is mutable and may resolve to a different package version each time a command is executed. In addition, `npx` can download and execute the package automatically when it is not already available locally. The reviewed project does not include the CLI implementation, an npm lockfile, an integrity hash, or an exact audited package version. Consequently, the executable code that performs credential creation, credential transmission, API-key persistence, secret retrieval, and `.env` modification is outside the reviewed artifact and can change after this Skill has been audited. This is particularly sensitive because the package operates while secrets, re-link tokens, persisted Vincent API keys, and writable project files may be accessible. Although use of a third-party credential service is consistent with the Skill's stated purpose, executing a mutable package exceeds the minimum risk necessary to implement that functionality. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or another component of the package supply chain. 2. The ...[truncated 1405 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace every `@latest` reference with an exact, reviewed package version. 2. Install the dependency through a committed lockfile and enforce npm integrity verification. 3. Avoid automatic package download and execution during sensitive credential operations. 4. Prefer a preinstalled, verified CLI artifact or vendor the relevant implementation for review. 5. Pin the package tarball or executable with a cryptographic checksum and reject integrity mismatches. 6. Run the CLI with restricted filesystem and network permissions, allowing access only to the required target file, credential store, and documented service endpoint. 7. Establish release signing, provenance verification, dependency scanning, and controlled update review. 8. Re-audit the CLI implementation, because the claims concerning endpoint exclusivity, TLS usage, output suppression, file permissions, and overwrite protection cannot be verified from `SKILL.md`. ]]>
