T08 · Insecure Dependencies
- Location
scripts/run.sh:15- Finding
Unpinned Third-Party Package Installation Guidance
- Content
View full analysis
Vulnerability Details
File Location:
scripts/run.sh, line 15
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
bash else echo "ERROR: Unable to locate the 'clawguandan' executable." >&2 echo "Searched locations:" >&2 echo " 1) PATH (via command -v clawguandan)" >&2 echo " 2) ./node_modules/.bin/clawguandan" >&2 echo "Install with:" >&2 echo " npm install @mikewei-labs/clawguandan@latest" >&2 exit 1 fiTechnical Analysis
When the required CLI cannot be found, the wrapper recommends installing
@mikewei-labs/clawguandanusing the mutablelatestnpm tag. The project does not provide an exact reviewed version, lockfile, package integrity hash, or other mechanism to ensure that the installed package matches the version assessed by the Skill author.Although
run.shdoes not automatically execute the installation command, its guidance can lead a user or agent to install code whose contents may change after this Skill has been reviewed. npm packages may also execute lifecycle scripts during installation. Consequently, compromise of the package, its publisher account, or its dependency chain could introduce arbitrary code into the local environment.Attack Path
- The
clawguandanexecutable is absent from bothPATHand./node_modules/.bin/. - The wrapper prints
npm install @mikewei-labs/clawguandan@latest. - A user or agent follows the displayed installation instruction.
- npm resolves the mutable
latesttag to the package version currently published by the third party. - If that release or one of its dependencies is compromised, malicious lifecycle scripts can execute during installation, or malicious CLI logic can execute when the wrapper is subsequently invoked.
- The malicious code runs with the privileges and environment access of the user performing the installatio ...[truncated 642 chars]
- The
- Remediation
View remediation
Remediation Suggestions
- Replace the mutable
latesttag with an exact, reviewed package version, for example:bash npm install --save-exact @mikewei-labs/clawguandan@X.Y.Z - Commit a lockfile containing npm integrity metadata and use
npm cifor reproducible installations. - Verify the selected package release, publisher identity, dependency tree, and provenance before recommending it.
- Where package lifecycle scripts are not required, install with
--ignore-scriptsand explicitly document any resulting limitations. - Consider distributing a verified local dependency or checking the installed CLI version against an approved version before execution.
- Update
SKILL.mdand the wrapper output to identify the trusted version and explain the verification procedure rather than recommending an unconstrained release.
- Replace the mutable
