T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:37
- Finding
- Unpinned Third-Party CLI and SDK Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:37-45` and `SKILL.md:776-800` **Vulnerability Type**: Unpinned third-party dependencies and global package installation **Risk Level**: Medium ### Vulnerable Code ```markdown ### NPM ```bash npm install -g @maton/cli ``` ### Homebrew ```bash brew install maton-ai/cli/maton ``` ``` Additional unpinned SDK installation instructions appear later: ```markdown **Python** ```bash pip install maton-ai ``` ```python from maton_ai import Maton, login # login() maton = Maton() # maton = Maton(api_key="...") result = maton.api.get("snapchat", "/v1/me/organizations") ``` **JavaScript** ```bash npm install @maton/sdk ``` ```javascript import { Maton, login } from "@maton/sdk"; // await login() const maton = new Maton(); // const maton = new Maton({ apiKey: "..." }); const result = await maton.api.get("snapchat", "/v1/me/organizations"); ``` ``` ### Technical Analysis The installation commands do not pin package versions, verify package integrity, or otherwise constrain the installed artifact to a reviewed release. The NPM CLI is also installed globally, increasing its reach within the user's environment. Because these packages implement authentication and API communication, a compromised package registry account, Homebrew tap, dependency, or future release could introduce code that executes during installation or subsequent use. Such code would run with the privileges of the user invoking the package manager. This is a supply-chain exposure rather than evidence that the named packages are currently malicious. The risk arises because the effective executable content can change after the Skill has been reviewed. ### Attack Path 1. An attacker compromises a package publisher, package registry account, Homebrew tap, or transitive dependency. 2. The attacker publishes a malicious release under one of the unpinned package names. 3. A user follows the Skill instructions and installs the latest a ...[truncated 1324 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the CLI and SDK packages to specific reviewed versions instead of installing the latest release implicitly. 2. For NPM, use exact versions and verify package integrity through a lockfile or expected integrity digest. 3. For Python, use an exact version with hash verification, such as a requirements file consumed with `pip install --require-hashes`. 4. Pin the Homebrew formula or documented release and verify its checksum or signature where supported. 5. Avoid global NPM installation where possible; use a project-local or isolated installation. 6. Run package installation without administrative privileges and in an isolated environment. 7. Document the expected package publishers and official package registry URLs to reduce typosquatting and dependency-confusion risks. 8. Establish a dependency update process that reviews release provenance and changes before advancing the pinned versions. ]]>
