T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:9
- Finding
- Unpinned Third-Party CLI Package Is Installed Globally<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:9-18`, `SKILL.md:32-35`, and `README.md:7-13` **Vulnerability Type**: Unpinned external dependency installed with global scope **Risk Level**: Medium ### Vulnerable Code `SKILL.md:9-18`: ```yaml 'install': [ { 'id': 'npm', 'kind': 'node', 'package': 'asosuite', 'bins': ['asosuite'], 'label': 'Install asosuite (npm)', }, ], ``` `SKILL.md:32-35`: ```bash npm install -g asosuite asosuite help ``` `README.md:7-13`: ```bash npm install -g asosuite # Check that it's working asosuite help ``` ### Technical Analysis The Skill installs the `asosuite` npm package without specifying an exact version or integrity value. Consequently, the installed code depends on whichever package release the registry resolves at installation time. The artifact contains only documentation and Skill metadata; it does not include the CLI implementation, a lockfile, an integrity hash, or other material that would allow the downloaded executable and installation lifecycle behavior to be audited. The `-g` option installs the executable globally. Depending on the environment and npm configuration, global installation may require elevated permissions or place executable files in a system-wide path. npm installation can also run package lifecycle scripts unless they are explicitly disabled. The documented ASO service legitimately requires network communication and authentication. `README.md:230-239` transparently describes a device authorization flow and storage of a long-lived token in `~/.asosuite/config.json`. No reviewed instruction explicitly exfiltrates that token or other unrelated sensitive information. However, because the downloaded package implementation is absent, its actual network destinations, token handling, file permissions, and local access behavior cannot be verified from this project. ### Attack Path 1. A user or agent loads the Skill and follows its installati ...[truncated 1681 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `asosuite` to an exact, reviewed version in both Skill metadata and installation examples, such as: ```bash npm install -g asosuite@X.Y.Z ``` Do not use a version range or floating tag. 2. Publish and verify package provenance, including the expected publisher, source repository, release commit, and npm provenance attestation. 3. Provide integrity metadata or a lockfile where the installation framework supports it. Verify the downloaded package against a trusted checksum before execution. 4. Prefer project-local or isolated installation over global installation: ```bash npm install --save-exact asosuite@X.Y.Z ``` Invoke the reviewed local binary rather than modifying a system-wide executable path. 5. Avoid administrative installation. Document that users must not run the npm command with `sudo` or an administrator account. 6. Audit package lifecycle scripts and disable them when they are unnecessary: ```bash npm install --ignore-scripts --save-exact asosuite@X.Y.Z ``` If lifecycle scripts are required, document their purpose and include them in the security review. 7. Include the CLI source or a reference to the exact reviewed source revision so its network behavior, command construction, token storage, and filesystem access can be independently assessed. 8. Store `~/.asosuite/config.json` with owner-only permissions, avoid printing the token in logs or JSON output, and restrict network communication to documented HTTPS endpoints. 9. Add an update-review process so version changes require renewed source review, integrity verification, and explicit approval rather than silently adopting the latest registry release. ]]>
