T08 · Insecure Dependencies
- Location
SKILL.md:51- Finding
Unpinned npm Package Is Downloaded and Executed in a Financial Signing Context
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 51-56
Additional Locations:references/commands.md, line 5;README.md, lines 8-18
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighVulnerable Code
bash npx -y @bifrostio/slpx-cli --versiontext If the published package uses a non-`latest` dist-tag (e.g. prerelease on `next`), pin it: `npx -y @bifrostio/slpx-cli@next --version`.The command prefix subsequently recommended for operations is:
text Prefix: `npx -y @bifrostio/slpx-cli`The installation documentation also recommends an unpinned, non-interactive global installation:
bash npx skills add bifrost-io/skills --skill bifrost-slpx --agent <agentname> -g -yTechnical Analysis
The Skill instructs the agent to use
npx -ywithout an exact package version or verified integrity value. As a result, the npm registry determines which package release is downloaded and executed at invocation time. Both the implicitlatestresolution and explicit@nextdist-tag are mutable references rather than immutable version pins.The
-yoption suppresses interactive confirmation, while the documented CLI is intended to run in an environment containing a wallet signing key and to submit financial transactions. The actual npm package implementation is maintained outside this audited project, so its source code, transitive dependencies, package lifecycle scripts, and runtime behavior could not be verified as part of this audit.This creates a supply-chain trust boundary in which reviewed documentation can cause subsequently changed third-party code to execute with the agent's operating-system privileges and inherited environment.
Attack Path
- An attacker compromises the npm publisher account, package release process, mutable dist-tag, or a transitive dependency used by
@bifrostio/slpx-cli. - The attacker publishes a malicious release and assigns it to `la ...[truncated 1177 chars]
- An attacker compromises the npm publisher account, package release process, mutable dist-tag, or a transitive dependency used by
- Remediation
View remediation
Remediation Suggestions
- Pin
@bifrostio/slpx-clito a reviewed, exact version rather thanlatest,next, or an omitted version:bash npx -y @bifrostio/slpx-cli@X.Y.Z --version - Commit and enforce a lockfile containing package integrity hashes. Use deterministic installation such as
npm ciin a controlled directory instead of downloading an arbitrary current release for every operation. - Pin the
skillsinstaller itself to an exact reviewed version and avoid unattended global installation where possible. - Verify package provenance, signatures, checksums, publisher identity, and the complete transitive dependency tree before allowing the package to handle signing operations.
- Disable npm lifecycle scripts during installation when compatible with the package, or explicitly audit every lifecycle script before execution.
- Run the CLI in a restricted environment that has access only to the resources required for the operation. Do not expose general user files or unrelated environment variables.
- Separate transaction construction from signing. Prefer a hardware wallet or isolated signer that displays and independently confirms the chain, recipient, value, and calldata.
- Establish an allowlist of reviewed package versions and require a fresh security review before updating the pin.
- Pin
