T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:32
- Finding
- Third-Party Dependencies Installed Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:32-47`, `SKILL.md:1514-1534` **Vulnerability Type**: Dependency supply-chain integrity weakness **Risk Level**: Medium ### Vulnerable Code ```markdown ## Installation ### NPM ```bash npm install -g @maton/cli@0.3.1 ``` ### Homebrew ```bash brew install maton-ai/cli/maton brew pin maton ``` Versions are pinned to the release this skill was reviewed against. Upgrade deliberately - check the release notes, then move the pin - rather than by re-running an unpinned install. Homebrew cannot select a version from a tap, so `brew pin maton` holds the installed build until you choose to upgrade; `maton-ai/cli` is Maton's own tap. ``` Additional SDK installation instructions use the same trust model: ```markdown **Python** ```bash pip install 'maton-ai==0.3.1' ``` **JavaScript** ```bash npm install @maton/sdk@0.3.1 ``` ``` ### Technical Analysis The installation commands pin package versions, which limits unexpected upgrades but does not cryptographically bind installation to the exact artifacts reviewed with this Skill. No checksum, package signature, hash-locked requirements file, or lockfile integrity verification is specified. The Homebrew installation additionally trusts the external `maton-ai/cli` tap. The global npm installation may execute package-controlled lifecycle scripts and installs the CLI into the invoking user's global package environment. Consequently, compromise of a package publisher, registry artifact, release process, or Homebrew tap could cause an artifact different from the reviewed implementation to be installed while retaining the expected package name and version. This is a supply-chain weakness rather than evidence that the named packages are currently malicious. The audit found no dependency confusion, typosquatting, or known malicious payload in the project itself. ### Attack Path 1. An attacker compromi ...[truncated 1891 chars]
- Remediation
- ## Remediation Suggestions 1. **Publish cryptographic checksums or signatures** - Provide SHA-256 hashes for reviewed CLI and SDK release artifacts. - Document a verification command that users must run before installation. - Prefer signed release artifacts and verify signatures against a separately documented publisher key. 2. **Use hash-locked dependency manifests** - For Python, provide a requirements file containing exact versions and hashes and install it with `pip install --require-hashes`. - For JavaScript projects, provide a reviewed lockfile containing registry integrity metadata and use `npm ci` instead of an unconstrained project installation. - Preserve exact transitive dependency versions, not only the top-level package version. 3. **Harden Homebrew installation** - Document how users can verify the tap repository owner and formula source before installation. - Pin or verify the formula commit and downloaded artifact checksum. - Prefer a signed or otherwise independently verifiable release channel. 4. **Reduce installation privileges** - Avoid global npm installation where practical. - Recommend an isolated virtual environment, container, or project-local installation. - Explicitly advise users not to run installation commands with elevated privileges. 5. **Document the reviewed artifact identity** - Record package names, versions, artifact hashes, registry origins, release signatures, and review dates. - Require a new security review whenever any of those values change.
