T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
Execution of an Unpinned npm Package Through a Mutable Latest Tag
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:27,SKILL.md:33,SKILL.md:39-42,SKILL.md:47,SKILL.md:63,SKILL.md:69;references/templates.md:8,references/templates.md:38,references/templates.md:65,references/templates.md:91,references/templates.md:99,references/templates.md:107,references/templates.md:125-128,references/templates.md:134-137,references/templates.md:143-146
Vulnerability Type: Unpinned third-party package execution
Risk Level: MediumVulnerable Code
The primary instructions execute the mutable
latestrelease directly:bash npx @celo/celo-composer@latest createbash npx @celo/celo-composer@latest create my-celo-appbash npx @celo/celo-composer@latest create my-celo-app \ --template basic \ --wallet-provider rainbowkit \ --contracts hardhatbash npx @celo/celo-composer@latest create my-celo-app --yesbash npx @celo/celo-composer@latest create -t minipaybash npx @celo/celo-composer@latest create -t farcaster-miniappThe template reference repeats the same unsafe dependency-selection pattern:
bash npx @celo/celo-composer@latest create my-app --template basicbash npx @celo/celo-composer@latest create my-app --template minipaybash npx @celo/celo-composer@latest create my-app --template farcaster-miniappbash npx @celo/celo-composer@latest create my-app --template ai-chatbash npx @celo/celo-composer@latest create my-app --wallet-provider rainbowkitbash npx @celo/celo-composer@latest create my-app --wallet-provider thirdwebbash npx @celo/celo-composer@latest create my-app --wallet-provider nonebash npx @celo/celo-composer@latest create my-app \ --template minipay \ --wallet-provider none \ --contracts hardhatbash npx @celo/celo-composer@latest create ...[truncated 2736 chars]- Remediation
View remediation
Remediation Suggestions
- Replace every
@latestreference with an explicitly reviewed package version, such as@celo/celo-composer@X.Y.Z. - Review the selected release, its transitive dependencies, package lifecycle scripts, and published provenance before recommending it.
- Update pinned versions only through a deliberate review process rather than allowing distribution-tag changes to alter executed code automatically.
- Where the workflow permits, install dependencies through a committed lockfile and use a reproducible installation command such as
npm cior the equivalent package-manager operation. - Verify registry integrity metadata and supported package provenance or signatures before execution.
- Run scaffolding tools with the minimum required privileges in an isolated workspace. Do not invoke them as root or from a shell containing unnecessary credentials.
- Keep wallet private keys and deployment credentials out of the environment while running third-party scaffolding tools. Populate contract environment files only after scaffolding is complete and the generated project has been reviewed.
- Add documentation explaining the trust implications of executing npm packages and a process for validating future version upgrades.
- Replace every
