T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unpinned Third-Party Package Is Downloaded and Executed
- Content
View full analysis
--name ``` ```sh npx -y reelier mcp --wrap "" npx -y reelier compile -o .skill.md ``` ```sh npx -y reelier init ``` ```sh npx -y reelier run .skill.md ``` ```sh npx -y reelier diff ``` ```sh npx -y reelier run .skill.md && npx -y reelier diff ``` ### Technical Analysis The installation metadata identifies `reelier` only by package name, while the command examples use `npx -y reelier` without an exact version or integrity constraint. Although the documentation states that it was written against the 0.12.x series, that statement does not constrain package resolution. When the package is not already available locally, `npx -y` can automatically retrieve and execute the version selected by the configured npm registry. The `-y` option suppresses the interactive installation confirmation. Consequently, the code executed by these commands can change after the Skill has been reviewed. This creates a supply-chain trust boundary: compromise of the package publisher, npm account, package dependencies, registry, or local registry configuration could cause attacker-controlled JavaScript to execute with the permissions of the user or service running the Skill. ### Attack Path 1. An attacker compromises the `reelier` npm package, one of its transitive dependencies, its publisher account, or a registry used by the target. 2. A malicious package version is published or returned during dependency resolution. 3. A user or scheduled heartbeat invokes an unpinned command su ...[truncated 1054 chars]- Remediation
View remediation
