T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:19
- Finding
- Unpinned Global Installation of a Third-Party npm Package## Vulnerability Details **File Location**: `SKILL.md`, lines 19 and 24–26 **Vulnerability Type**: Supply-chain risk from an unpinned third-party dependency **Risk Level**: Medium The skill instructs users to install the latest available release of a third-party npm package globally: ```yaml install: npm i -g @11x.agency/gworkspace ``` The instruction is repeated in the setup documentation: ```markdown ## Do This First - Ensure `gw` is installed: `npm i -g @11x.agency/gworkspace` ``` ### Technical Analysis The installation command does not specify an exact package version or integrity digest. Consequently, the code installed depends on whichever release the npm registry resolves at installation time, rather than an artifact whose contents correspond to a previously reviewed version. npm package installation may execute package lifecycle scripts with the privileges of the installing user. Global installation also makes the package broadly available in the user's environment. The installed implementation is not included in this project, so its behavior—including lifecycle scripts, OAuth handling, and file access—cannot be verified from the audited artifact. This finding does not establish that the referenced package is malicious. The vulnerability is the unsafe dependency acquisition process, which exposes users to future upstream compromise, unauthorized package publication, or an unexpectedly unsafe release. ### Attack Path 1. An attacker compromises the upstream package publisher, maintainer account, release process, or registry artifact. 2. The attacker publishes a malicious release under `@11x.agency/gworkspace`. 3. A user or agent follows the documented `npm i -g @11x.agency/gworkspace` instruction. 4. npm resolves and installs the compromised release because no reviewed version or integrity value is pinned. 5. Malicious installation lifecycle code or the installed `gw` executable runs with the installin ...[truncated 1144 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to an exact reviewed version, for example: ```bash npm install --global @11x.agency/gworkspace@<reviewed-exact-version> ``` 2. Record and verify the expected package integrity digest before installation. 3. Use a lockfile and a reproducible installation workflow where possible. 4. Prefer a project-local installation over a global installation to reduce environmental exposure and make dependency resolution auditable. 5. Review the exact package artifact, including lifecycle scripts and transitive dependencies, before recommending it. 6. Use `--ignore-scripts` during installation when compatible with the package, or separately inspect and explicitly authorize required lifecycle scripts. 7. Publish or vendor the source corresponding exactly to the approved package artifact so the installed implementation can be audited with the skill. 8. Run the CLI with least privilege and limit Google OAuth scopes to those required for the intended operation. 9. Protect `~/.11x/gworkspace/token.json` with restrictive filesystem permissions and revoke tokens promptly if package compromise is suspected. 10. Document a trusted update process that requires review and integrity verification before changing the pinned version.
