T08 · Insecure Dependencies
- Location
SKILL.md:58- Finding
Unverified Mutable Third-Party Repository Is Installed with npm
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:58-61andREADME.md:89-93
Vulnerability Type: Third-party supply-chain exposure through an unpinned repository and npm lifecycle execution
Risk Level: MediumVulnerable Code
SKILL.md:58-61:bash cd /home/ubuntu/line-sticker-factory npm install npm run devREADME.md:89-93:bash git clone https://github.com/qpooqp777/line-sticker-factory.git cd line-sticker-factory npm install npm run devTechnical Analysis
The documented integration procedure clones the current default branch of an external GitHub repository without pinning a reviewed commit or signed release. It then runs
npm install, which resolves third-party packages and may execute npm lifecycle scripts such aspreinstall,install, andpostinstall.Consequently, the code executed by this workflow can change after this Skill package has been audited. The effective installation payload depends on the current state of the external repository, its lockfile, the npm registry, and its transitive dependencies. Compromise of the referenced repository, a maintainer account, or a dependency release could introduce arbitrary installation-time code.
The Skill does not itself contain or automatically execute a malicious payload. The risk becomes exploitable only when a user follows the documented commands.
Attack Path
- An attacker compromises the referenced
line-sticker-factoryrepository, a maintainer account, or one of its npm dependencies. - The attacker modifies the default branch, dependency metadata, lockfile, or an npm lifecycle script to include malicious code.
- A user follows the Skill documentation and clones the repository without selecting a reviewed commit or immutable release.
- The user runs
npm install; npm resolves the attacker-controlled dependency state and executes applicable lifecycle scripts. - The malicious script executes ...[truncated 910 chars]
- An attacker compromises the referenced
- Remediation
View remediation
Remediation Suggestions
- Pin the integration repository to a reviewed immutable commit hash or a verified signed release instead of using the mutable default branch.
- Publish and document the expected commit hash and verify the checkout before installation:
bash git clone https://github.com/qpooqp777/line-sticker-factory.git cd line-sticker-factory git checkout --detach <reviewed-commit-sha> test "$(git rev-parse HEAD)" = "<reviewed-commit-sha>" - Require a committed lockfile and use
npm cirather thannpm installto prevent unreviewed dependency resolution changes. - Review npm lifecycle scripts and initially install with
npm ci --ignore-scriptswhere compatible. Run only explicitly required scripts after inspection. - Verify release signatures, checksums, or provenance attestations before installation.
- Run the external application in an isolated, unprivileged container or temporary development environment without production credentials, SSH agents, or sensitive environment variables.
- Add dependency auditing, lockfile review, and automated supply-chain scanning to the documented update process.
- Clearly state that the third-party repository is independently maintained and that users must review its current code and dependencies before execution.
