T08 · Insecure Dependencies
- Location
skill.md:42- Finding
Unpinned Third-Party Executable Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
skill.md, lines 42-45 and 74-79
Vulnerability Type: Unpinned and unauditable third-party dependencies
Risk Level: MediumThe skill delegates security-sensitive blockchain and wallet operations to external npm packages without pinning exact versions, supplying a lockfile, recording package integrity hashes, or including the dependency source for review.
Affected code:
markdown Package: [`@rocketlabs/skill-audit`](https://www.npmjs.com/package/@rocketlabs/skill-audit) ```javascript const { checkSkill, registerSkill, auditSkill, vouchForSkill, hashSkill } = require('@rocketlabs/skill-audit');text The prerequisites also permit mutable future dependency releases: ```markdown ## Prerequisites - `@iqlabs-official/solana-sdk` v0.1.1+ (CommonJS required) - `@solana/web3.js` v1.x - Solana wallet for writes - IQ tokens for audit writes (token mint: `3uXACfojUrya7VH51jVC1DCHq3uzK4A7g469Q954LABS`) - Buffer monkey-patch applied (handled automatically by the package)Technical Analysis
The primary
@rocketlabs/skill-auditpackage has no version constraint in the documented import, while@iqlabs-official/solana-sdkaccepts any version from0.1.1onward and@solana/web3.jsaccepts any1.xrelease. Because the project contains onlyskill.md, no lockfile or package integrity metadata is available to make dependency resolution reproducible.A package imported through
require()executes initialization code with the privileges of the hosting agent process. Consequently, a compromised, malicious, or unexpectedly changed permitted package release could run before any exported blockchain function is called. The documented automaticBuffermonkey-patch also indicates global runtime mutation, but its implementation is not present for audit.This finding does not establish that the named packages are currently malicious. It identifies a supply-ch ...[truncated 1769 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to a reviewed, exact version rather than using unrestricted imports, minimum versions, caret ranges, or major-version ranges.
- Add and commit a package lockfile containing registry-resolved integrity metadata.
- Record the expected package versions and cryptographic integrity hashes directly in the installation documentation.
- Audit or vendor the source of
@rocketlabs/skill-auditand its transitive dependencies so that wallet and transaction behavior can be reviewed with the skill. - Replace automatic global
Buffermonkey-patching with an explicit, narrowly scoped compatibility layer, or document and review the exact mutation performed. - Run dependency installation and execution in a restricted environment with minimal filesystem, network, and environment-variable access.
- Keep wallet signing outside the dependency process when possible. Require explicit user confirmation and independently display the recipient, program ID, instructions, accounts, token amounts, and fees before signing.
- Use a dedicated low-balance wallet with only the permissions and assets needed for the operation.
- Add automated dependency scanning, provenance verification, and update review before accepting future releases.
