T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:43
- Finding
- Dependency Installation Without Cryptographic Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, lines 43, 49–50, 1265, and 1282 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g @maton/cli@0.3.1 ``` ```bash brew install maton-ai/cli/maton brew pin maton ``` ```bash pip install 'maton-ai==0.3.1' ``` ```bash npm install @maton/sdk@0.3.1 ``` ### Technical Analysis The Skill directs users or agents to install third-party CLI and SDK packages from npm, PyPI, and a vendor-controlled Homebrew tap. The npm and Python packages are version-pinned, which reduces accidental upgrades, but they are not verified using cryptographic hashes, signed release artifacts, or a reviewed lockfile. Version pinning alone does not guarantee artifact integrity. A compromised package-publisher account, package registry, vendor tap, or release artifact could cause the same documented version to deliver malicious installation content. Package installation may execute package-controlled lifecycle hooks, build scripts, or other local code with the privileges of the user running the installation. The Homebrew sequence presents an additional integrity limitation: `brew install maton-ai/cli/maton` installs the formula currently exposed by the tap, and `brew pin maton` only prevents subsequent upgrades. Pinning after installation does not select or verify the release that was originally audited. ### Attack Path 1. An attacker compromises a package-publisher account, registry release, distribution infrastructure, or the `maton-ai/cli` Homebrew tap. 2. The attacker replaces or republishes an expected artifact, or modifies the current Homebrew formula to reference a malicious artifact. 3. A user or agent follows the installation instructions in `SKILL.md`. 4. npm, pip, or Homebrew downloads the unverified component. 5. Package-controlled installation or runtime code executes under the invoking user's account. ...[truncated 1339 chars]
- Remediation
- ## Remediation Suggestions 1. **Add cryptographic integrity verification** - Publish SHA-256 checksums for reviewed CLI and SDK artifacts. - Verify checksums before installation or execution. - Prefer signed release artifacts and document signature verification against a pinned publisher key. 2. **Harden Python dependency installation** - Provide a reviewed requirements file containing exact versions and hashes. - Require installation with `pip install --require-hashes -r requirements.txt`. - Include hashes for all transitive dependencies, not only the direct SDK package. 3. **Harden npm dependency installation** - Provide and review a lockfile that pins the complete transitive dependency graph. - Use `npm ci` rather than a mutable `npm install` workflow where practical. - Use `--ignore-scripts` during installation when package functionality does not require lifecycle scripts. - If lifecycle scripts are required, document and review them explicitly. 4. **Correct the Homebrew installation model** - Use a versioned formula or a signed, version-specific binary rather than installing the current tap state. - Pin the formula source and artifact checksum to the exact reviewed release. - Clarify that `brew pin` only prevents future upgrades and does not verify the initially installed artifact. 5. **Reduce installation privileges** - Do not run package installation as root or with `sudo`. - Prefer an isolated virtual environment, container, or dedicated low-privilege user. - Avoid global npm installation where a project-local or isolated installation is sufficient. 6. **Document dependency provenance** - Identify the expected package publishers, repository URLs, signatures, checksums, and release identifiers. - Require users to stop installation if package provenance or integrity verification fails.
