T08 · Insecure Dependencies
- Location
references/03-upgrade.md:88- Finding
Mutable npm dependency is downloaded and executed without version or integrity pinning
- Content
View full analysis
``` ### Technical Analysis The upgrade procedure installs the mutable `@latest` release of a package from the configured npm registry. The effective dependency content can therefore change after the Skill has been reviewed. An npm installation may execute package lifecycle scripts, while `npm rebuild better-sqlite3` runs build tooling and native compilation steps with the permissions of the invoking user. Network access is reasonably necessary to retrieve an upgrade, and the audited files do not explicitly upload service environment values, credentials, or agent data. However, using a mutable version without integrity verification unnecessarily expands supply-chain trust and prevents reproducible review. Although this behavior resembles remote payload retrieval, the best matching classification is insecure dependency handling because the remote code is introduced through the standard npm dependency channel. ### Attack Path 1. An attacker compromises the npm package, one of its transitive dependencies, its publisher account, or the configured registry. 2. A malicious version becomes the package release selected by the `latest` tag. 3. The operator follows the Skill's upgrade procedure. 4. `npm install -g @tobilu/qmd@latest` retrieves the changed package and dependencies. 5. npm lifecycle scripts or subsequently invoked package code execute under the operator's user account. 6. The mali ...[truncated 563 chars]- Remediation
View remediation
