T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Third-Party CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7–10
Vulnerability Type: Unpinned third-party dependency and unsafe installation procedure
Risk Level: MediumVulnerable Code
bash git clone https://github.com/FroeMic/attio-cli cd attio-cli npm install npm linkTechnical Analysis
The installation instructions clone the current default branch of a third-party GitHub repository without pinning a reviewed commit, immutable release tag, checksum, or signature. The subsequent
npm installmay install mutable transitive dependencies and execute package lifecycle scripts.npm linkthen exposes the resulting CLI globally in the user's npm environment.Consequently, the code executed by users can differ from the version assessed during this audit. A compromise of the upstream repository, its maintainer account, or an npm dependency could introduce arbitrary code. This is a supply-chain weakness rather than evidence that the currently referenced project is malicious.
Attack Path
- An attacker compromises the referenced repository, a maintainer account, or one of its npm dependencies.
- The attacker adds malicious code or an npm lifecycle script to the mutable upstream source.
- A user follows the documented commands and clones the compromised default branch.
npm installinstalls the altered dependency graph and may execute attacker-controlled lifecycle scripts.- The payload runs with the user's privileges and may inspect local files, environment variables, or authentication material such as
ATTIO_API_KEY. npm linkcan make the compromised executable available as the globally resolvedattiocommand, extending exposure to later invocations.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user performing the installation. The accessible scope could include local files readable by that user, environme ...[truncated 319 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed, immutable commit hash or signed release rather than cloning the mutable default branch.
- Publish and verify a cryptographic checksum or signature for the approved source archive.
- Require a committed lockfile and use
npm cito reproduce the reviewed dependency graph. - Audit npm lifecycle scripts and use
npm ci --ignore-scriptswhere lifecycle execution is unnecessary. - Avoid
npm linkfor routine installation. Prefer a versioned package or a project-local executable with a constrained execution path. - Document the exact approved upstream version and establish an update-review process.
- Use a least-privileged, revocable Attio API key and rotate it if installation occurs from an unverified source.
- Store credential files with restrictive permissions and exclude generated workspace schema files from version control because they may reveal sensitive CRM structure.
