T08 · Insecure Dependencies
- Location
SKILL.md:34- Finding
Unpinned Third-Party Installation Executes Unreviewed Supply-Chain Code
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 34–39
Vulnerability Type: Unpinned and unreviewed third-party source installation
Risk Level: MediumVulnerable Code
bash git clone https://github.com/cuuush/groupme-cli cd groupme-cli npm install npm run bundle npm linkTechnical Analysis
The installation procedure clones the default branch of an external GitHub repository without pinning an immutable commit or verified release. It then invokes several operations capable of executing code supplied by that repository or its dependencies:
npm installcan execute npm dependency lifecycle scripts.npm run bundleexecutes a script defined by the downloaded repository.npm linkexposes the resulting executable through the user's npm global command environment.
No commit hash, dependency integrity baseline, artifact checksum, or verified provenance is specified. The external repository and its dependencies are not included in the audited project, so their implementation and lifecycle scripts could not be verified during this audit.
This creates a supply-chain trust boundary in which the effective installed code can change after the Skill has been reviewed. A compromised upstream repository, mutable default branch, malicious dependency update, or dependency-account compromise could therefore result in arbitrary code execution during installation.
Attack Path
- An attacker compromises the upstream repository, one of its npm dependencies, or a maintainer account.
- The attacker introduces a malicious lifecycle script, build script, dependency version, or CLI implementation.
- A user follows the Skill's installation instructions and clones the current upstream default branch.
npm installornpm run bundleexecutes the attacker-controlled code with the installing user's privileges.npm linkmakes the compromisedgroupmeexecutable available through th ...[truncated 850 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin installation to an audited, immutable Git commit or cryptographically verified release rather than cloning the mutable default branch.
- Record and verify the expected commit hash, release signature, or artifact checksum before executing any downloaded content.
- Require a committed npm lockfile and use
npm cito install the exact reviewed dependency graph. - Review
package.json, lifecycle hooks, bundle scripts, transitive dependencies, and the generated executable before installation. - Disable lifecycle scripts during initial dependency retrieval where practical, such as with
npm ci --ignore-scripts, and run only individually reviewed build steps afterward. - Prefer an isolated, non-privileged environment or project-local installation over
npm linkand global command exposure. - Run dependency auditing and provenance verification as part of release validation.
- Restrict the GroupMe token to the minimum practical exposure, avoid passing it directly on command lines, and protect
~/.config/groupme/config.jsonwith user-only file permissions.
