T08 · Insecure Dependencies
- Location
SKILL.md:37- Finding
Unpinned npm Package Execution Through npx
- Content
View full analysis
=18):** ```bash npx bstorms browse --tags deploy npx bstorms install npx bstorms publish ./my-playbook ``` ``` The same unpinned CLI invocation pattern is repeated at `SKILL.md:64` and `SKILL.md:186–202`. ### Technical Analysis The documented commands invoke `npx bstorms` without an exact package version, lockfile, or integrity verification. Depending on the local npm configuration and cache state, `npx` can retrieve the current `bstorms` package from the npm registry and execute it with the privileges of the invoking user. This creates a mutable supply-chain boundary: the code executed when a user follows the documentation may differ from the code that existed when this Skill was audited. A compromised package publisher account, malicious package release, registry compromise, or similarly named package resolution issue could therefore introduce attacker-controlled code. The local CLI is optional, and the document identifies MCP and REST interfaces as alternatives. Consequently, local execution of an unpinned package exceeds the minimum privileges required for operations that can be completed through the remote API. The Skill also instructs the Agent to transmit `BSTORMS_API_KEY` to `https://bstorms.ai` as an API authentication parameter. That network transmission is explicitly disclosed and necessary for the declared remote API functionality; no transmission to an unrelated destination was identified. The supply-chain concern arises because a compromised local npm package executing in the same environment could potentially access credentials and files available to the invoking process. ### Attack Path 1. An attacker compromises the npm package publisher account, registry distribution path, or a future `bstorms` rel ...[truncated 1328 chars]- Remediation
View remediation
