T08 · Insecure Dependencies
- Location
SKILL.md:75- Finding
Unnecessary and Unpinned Third-Party SDK Dependency Expands the Supply-Chain Attack Surface
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:75-77,clawhub-manifest.json:27-29,skill.json:10-12
Vulnerability Type: Unnecessary third-party dependency with a mutable version range
Risk Level: MediumVulnerable Code
SKILL.md:75-77bash # Install dependencies npm install @openclaw/sdkclawhub-manifest.json:27-29json "dependencies": { "@openclaw/sdk": "^2026.3.2" },skill.json:10-12json "dependencies": { "@openclaw/sdk": "^2026.3.2" }Technical Analysis
The project instructs users to install
@openclaw/sdkand declares it with the caret range^2026.3.2. However, the executable implementation never imports this package. Instead,index.js:1-8defines a local SDK simulation, and its only actual imports atindex.js:10-11are the built-in Node.jsfsandpathmodules.The unused dependency unnecessarily enlarges the package's software supply chain. The caret range permits npm to resolve later semantically compatible releases that were not necessarily included in the reviewed artifact. It may also resolve transitive dependencies. If the package, a permitted future version, or one of its transitive dependencies becomes compromised, package installation could introduce attacker-controlled code.
This audit found no evidence that the currently declared SDK is malicious. The risk arises from requiring an unnecessary, externally maintained, and non-exact dependency.
Attack Path
- A user follows the installation instructions in
SKILL.mdor installs the skill through tooling that processes its dependency manifest. - npm resolves
@openclaw/sdkusing the mutable^2026.3.2range, together with any transitive dependencies. - A compromised compatible release or transitive package is selected.
- If the compromised package defines an installation lifecycle script, npm may execute it with the privileges of the user performing t ...[truncated 728 chars]
- A user follows the installation instructions in
- Remediation
View remediation
Remediation Suggestions
- Remove
@openclaw/sdkfromclawhub-manifest.jsonandskill.json, and remove the correspondingnpm installinstruction, because the current implementation does not use the package. - If SDK integration is required, import and use only the necessary API rather than retaining both a local simulation and an external dependency.
- Pin the dependency to an audited exact version instead of using a caret range.
- Commit a valid npm lockfile containing resolved versions and integrity hashes.
- Review direct and transitive dependencies with automated vulnerability and provenance checks before publication.
- Where operationally appropriate, install dependencies with lifecycle scripts disabled and explicitly allow only reviewed packages that require installation scripts.
- Correct the missing comma after the version field in
skill.jsonso security and installation tooling can parse the manifest reliably.
- Remove
