T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:392
- Finding
- Execution of Unpinned Third-Party CLI Packages via npx## Vulnerability Details **File Location**: `SKILL.md`, lines 392-395 **Vulnerability Type**: Supply-chain exposure through unpinned executable dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # Install and authenticate npx @capawesome/cli login # Create an app npx @capawesome/cli apps:create ``` Similar unpinned executions occur at lines 427, 436, 439, 448, 451, and 459-460. ### Technical Analysis The Skill instructs users to execute `@capawesome/cli` directly with `npx` without specifying an audited version or requiring installation through a committed lockfile. Depending on the local npm configuration and package availability, `npx` may download and execute the currently resolved package release from the npm registry. This creates a mutable execution path: the code executed when a user follows the Skill can differ from the code that existed when the Skill was audited. Compromise of the package publisher, npm account, package release process, or transitive dependency chain could therefore introduce arbitrary code into the workflow. The Capawesome Cloud operations are consistent with the Skill's declared functionality. However, dynamically resolving executable dependencies is not the minimum-risk implementation because reproducible, integrity-controlled installation is available. ### Attack Path 1. An attacker compromises the npm package publisher, release pipeline, or a dependency used by `@capawesome/cli`. 2. The attacker publishes a modified package version containing malicious lifecycle or runtime code. 3. A user follows the Skill and executes an unversioned `npx @capawesome/cli ...` command. 4. `npx` resolves and downloads the compromised release. 5. The package executes with the privileges of the invoking user or CI runner. 6. The malicious code reads accessible source files, environment variables, npm credentials, cloud tokens, signing material, or build artifacts and may transmit them ...[truncated 707 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the CLI to a reviewed exact version, for example `npx @capawesome/cli@X.Y.Z`, and document the approved version. 2. Prefer declaring the CLI in `devDependencies`, committing the package lockfile, and installing dependencies with `npm ci`. 3. Run package operations with lifecycle scripts disabled where compatible, then explicitly execute only required tooling. 4. Verify package provenance, checksums, signatures, and publisher identity before updating the approved version. 5. Use automated dependency scanning and require review for lockfile or CLI-version changes. 6. Execute cloud tooling in an isolated, least-privileged environment with access only to the files and secrets required for the selected operation. 7. Require explicit user confirmation before authentication, artifact upload, native builds, OTA updates, or store deployment.
