T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:167
- Finding
- Unpinned Third-Party Dependencies Create a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:167` and `SKILL.md:291` **Vulnerability Type**: Unpinned npm dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npm install @jhinresh/viem-guard viem ``` ```bash npm install @jhinresh/maiat-sdk ``` ### Technical Analysis The Skill instructs users or agents to install third-party npm packages without exact version constraints or verified integrity hashes. Consequently, package resolution can select whatever release is current at installation time rather than a specific release that was reviewed alongside the Skill. npm packages may execute code through lifecycle scripts during installation and through imported modules at runtime. A compromised maintainer account, malicious future release, package registry compromise, or dependency-chain compromise could therefore change the effective behavior after this Skill has been audited. This is particularly sensitive for `@jhinresh/viem-guard` because the package is intended to wrap a wallet client and participate directly in transaction processing. ### Attack Path 1. An attacker compromises a package maintainer, package release process, or transitive dependency. 2. The attacker publishes a malicious release under one of the documented package names. 3. An agent follows the Skill and runs an unpinned `npm install` command. 4. npm resolves and installs the malicious release. 5. Malicious lifecycle or runtime code executes with the privileges of the installing process. 6. The code may inspect application data, monitor wallet operations, alter transaction parameters, or exfiltrate accessible credentials. ### Impact Assessment Successful exploitation could execute arbitrary JavaScript with the privileges of the agent or application process. Depending on the host environment and wallet architecture, this could expose configuration data, API credentials, transaction metadata, or wallet requests. A dependency operating on the wallet transact ...[truncated 92 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin every direct dependency to an exact, reviewed version rather than relying on the latest release. - Commit and enforce a lockfile containing registry integrity hashes. - Use deterministic installation commands such as `npm ci`. - Review package source, release provenance, maintainers, and transitive dependencies before deployment. - Use npm provenance or equivalent signed-artifact verification where supported. - Disable lifecycle scripts with `--ignore-scripts` when they are not required. - Run wallet-related dependencies in a restricted environment with minimal filesystem, network, and secret access. - Add automated dependency auditing and alerting for unexpected maintainer, version, or integrity changes. ]]>
