T08 · Insecure Dependencies
Error
- Location
- SKILL.md:15
- Finding
- Unpinned Global Installation of a Privileged Third-Party CLI## Vulnerability Details **File Location**: `SKILL.md`, lines 15-18 **Vulnerability Type**: Unpinned third-party dependency with global installation and subsequent access to sensitive credentials **Risk Level**: High ```markdown ## Installation To install jira-ai, run: ```bash npm install -g jira-ai ``` ``` ### Technical Analysis The Skill instructs users to install the latest available version of the third-party `jira-ai` npm package globally. The installation does not specify an exact version, integrity hash, lockfile, verified publisher, or provenance requirement. Consequently, the package code executed by users can differ from the version originally reviewed. npm installation may also execute package lifecycle scripts, while the `-g` option makes the resulting executable available throughout the user's environment. The documentation subsequently directs users to provide this executable with a Jira email address and API token through an environment file. Network communication with the configured Atlassian host is necessary for the declared Jira and Confluence functionality. However, because the project contains only `SKILL.md` and does not include the CLI implementation, the audit cannot verify whether credentials are securely stored, restricted to the intended Atlassian host, or transmitted to additional endpoints. There is no direct evidence in the reviewed file that the package intentionally exfiltrates data, but the installation process creates a material supply-chain trust boundary. ### Attack Path 1. An attacker compromises the npm account, publication pipeline, or package associated with `jira-ai`, or causes users to receive an unsafe future release. 2. A user follows the documented command, which resolves and globally installs the current package version rather than a previously reviewed version. 3. Malicious code executes during an npm lifecycle hook or when the globally installed CLI is invoked. 4. The user creates a `.env` file containing ...[truncated 1270 chars]
- Remediation
- ## Remediation Suggestions 1. Pin installation instructions to an exact, security-reviewed package version, for example `jira-ai@1.0.0`, rather than resolving the latest release. 2. Prefer a project-local, lockfile-backed installation over a global installation. Commit the lockfile after reviewing its resolved package source and integrity metadata. 3. Publish and document the authoritative npm package URL, expected publisher identity, source repository, release signatures, and provenance attestations. 4. Verify package integrity and provenance before installation. Use npm provenance and trusted publishing where supported. 5. Disable npm lifecycle scripts during installation where compatible, or explicitly document and review every required lifecycle script. 6. Review the actual CLI implementation and its complete dependency tree before granting it access to production credentials. 7. Use a dedicated Atlassian service account and a narrowly scoped token limited to the necessary projects, spaces, and operations. 8. Store credentials using a protected credential manager where possible. If an environment file is unavoidable, require restrictive file permissions, exclude it from version control, and securely remove it after authentication. 9. Document the expected outbound destinations and enforce an allowlist so credentials and organizational data can only be sent to the intended Atlassian host. 10. Add guidance for token rotation and immediate revocation if package integrity or credential confidentiality is suspected to have been compromised.
