T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned External npm Dependency Supplies Privileged Exchange Runtime
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:10
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code
yaml metadata: {"author":"yubit","version":"1.0.6","openclaw":{"emoji":"📈","requires":{"bins":["yubit"]},"install":[{"id":"npm","kind":"node","package":"@yubit/exchange-skill","bins":["yubit"],"label":"Install yubit CLI (npm)"}]}}Technical Analysis
The Skill declares automatic installation of the external npm package
@yubit/exchange-skillwithout an exact version or integrity hash. Consequently, installation may resolve to a package release different from the one assessed when this Skill was reviewed.The external package supplies the
yubitexecutable and effective MCP implementation. That implementation is not included in the audited project, which contains onlySKILL.md. Its behavior—including lifecycle scripts, credential handling, network communication, and exchange requests—therefore cannot be verified from this artifact.This is a supply-chain weakness rather than proof that the current npm package is malicious. However, because the dependency implements authenticated financial operations, compromise of its publisher account, package contents, or transitive dependencies could have severe consequences.
Attack Path
- An attacker compromises the npm publisher account, package publication workflow, registry artifact, or an unresolved transitive dependency.
- The attacker publishes a malicious release under
@yubit/exchange-skill. - A user installs this Skill where the unversioned package reference resolves to that malicious release.
- Malicious code executes through npm lifecycle behavior or when the installed
yubitexecutable is invoked. - The code accesses credentials and capabilities available to the process or alters authenticated exchange operations.
- Depending on the configured account permissions, the attacker may steal sen ...[truncated 720 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@yubit/exchange-skillto a specifically reviewed, immutable version rather than allowing npm to resolve a floating release. - Record and verify the package integrity hash and registry provenance.
- Lock the complete transitive dependency graph with a committed lockfile where the installation framework supports one.
- Review the corresponding package source, build process, npm lifecycle scripts, and credential-handling behavior before distribution.
- Use reproducible builds and verify that the published npm artifact matches the reviewed source.
- Disable npm lifecycle scripts during installation where they are unnecessary.
- Monitor the dependency and its transitive packages for ownership changes, unexpected releases, and known vulnerabilities.
- Run the CLI with least privilege and use exchange credentials restricted to only the required read or trading capabilities.
- Require explicit user confirmation or independently enforced policy controls for high-impact financial writes, even if the installed runtime is compromised.
- Pin
