T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16–20
Vulnerability Type: Supply-chain exposure through an unpinned npm dependency
Risk Level: Mediummarkdown Ensure `favicons` is installed in the project before execution: ```bash npm install faviconstext ### Technical Analysis The documented installation command does not specify an exact reviewed version of the `favicons` package. Consequently, npm resolves the version from mutable registry metadata at installation time. The effective dependency implementation can therefore change after this Skill has been audited without requiring any change to the repository. npm installation can also execute dependency lifecycle scripts unless they are explicitly disabled. If the package publisher account, npm registry distribution, or a future package release is compromised, following this instruction could install and potentially execute attacker-controlled code. The project does not include a lockfile or integrity metadata that would constrain installations to a known artifact. ### Attack Path 1. An attacker compromises the `favicons` package publisher account, registry distribution channel, or a future release. 2. The attacker publishes a malicious version or modifies the package artifact resolved by the unpinned package name. 3. A user follows the documented `npm install favicons` instruction. 4. npm retrieves the currently resolved mutable version rather than a previously reviewed exact artifact. 5. Malicious lifecycle code may execute during installation, or malicious library code may execute when `scripts/generate_favicons.js` imports and invokes the package. 6. The payload operates with the permissions and environment access of the npm or Node.js process. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the account running npm or the favicon-generation script. The resulting scope may include read ...[truncated 423 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
faviconsto a reviewed exact version rather than using an unconstrained package name:bash npm install --save-exact favicons@<reviewed-version> - Commit
package.jsonandpackage-lock.json, including npm integrity hashes, to the Skill package. - In automated or reproducible environments, install dependencies with:
bash npm ci - Review the selected package version, its transitive dependency tree, provenance, and lifecycle scripts before approving an upgrade.
- If dependency lifecycle scripts are unnecessary, consider installing with
--ignore-scriptsafter confirming that doing so does not break required functionality. - Execute dependency installation and icon generation in a sandbox or least-privileged environment without unrelated credentials or sensitive filesystem access.
- Introduce dependency scanning and lockfile verification in CI, and require explicit review for package or integrity-hash changes.
- Pin
