T08 · Insecure Dependencies
Warning
- Location
- README.md:17
- Finding
- Unpinned Package Execution and Mutable Global Skill Installation<![CDATA[ ## Vulnerability Details **File Location**: `README.md`, line 17 **Vulnerability Type**: Unpinned third-party package execution and mutable remote installation **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add https://github.com/Hey-Salad/adaptive-learning-playbook-skill --skill adaptive-learning-playbook --yes --global ``` ### Technical Analysis The installation command invokes the `skills` npm package through `npx` without specifying an exact, audited package version. Depending on the local environment, `npx` can download and execute the package resolved by the registry at invocation time. The command also installs the Skill from a mutable GitHub repository URL rather than a specific commit hash or signed release. Consequently, the package and Skill content executed or installed by future users may differ from the content reviewed during this audit. The `--yes` option suppresses confirmation, while `--global` increases the installation scope beyond the current project. No evidence indicates that the currently reviewed repository is malicious. The vulnerability is the unsafe supply-chain pattern documented for users. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, the package registry path, or the referenced GitHub repository. 2. The attacker publishes malicious package logic or modifies the repository's mutable default branch. 3. A user follows the documented installation command. 4. `npx` resolves and executes the unpinned package, which retrieves content from the mutable repository. 5. The malicious logic runs with the invoking user's permissions. 6. The compromised Skill is installed globally, potentially affecting multiple projects or later agent sessions for that user. ### Impact Assessment Successful exploitation could execute arbitrary code with the permissions of the user running the command. This could permit access to files, environment variables, developer credentials, source ...[truncated 399 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the `skills` CLI to a reviewed exact version instead of relying on registry resolution: ```bash npx --yes skills@<audited-exact-version> add <source> ... ``` 2. Pin the GitHub source to a verified commit hash or immutable signed release rather than the default branch. 3. Publish and verify cryptographic checksums or signatures for release artifacts. 4. Remove `--yes` from the recommended interactive installation path so users can review the requested operation. 5. Prefer project-local installation over `--global` unless global scope is explicitly required. 6. Use a lockfile or equivalent integrity-controlled installation mechanism where supported. 7. Run installation in a restricted environment with minimal filesystem access, no unnecessary credentials, and limited network access. 8. Document the exact reviewed package version, repository commit, and expected integrity value. ]]>
