Back to skill

Security audit

GBLIN Risk Shield

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its stated market-risk purpose, but it asks agents handling crypto treasury workflows to run an unpinned npm MCP server.

Review the MCP server and prefer a pinned, verified version before installation, especially because this workflow may interact with wallet payment tooling and ready-to-sign treasury calldata. Do not expose private keys or unrestricted signing to the MCP process.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:105
Finding

Unpinned npm Package Downloaded and Executed via npx

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 105–109
Vulnerability Type: T08: Insecure Dependencies
Risk Level: High

Vulnerable code:

markdown
If your runtime supports MCP servers, the official server includes the free
`verify_risk_attestation` tool plus 9 more treasury tools (requires Node.js):

```bash
npx -y @gblin-protocol/mcp-server
text

### Technical Analysis

The documented command uses `npx -y` to retrieve and execute `@gblin-protocol/mcp-server` from the configured npm registry without interactive confirmation. It does not pin an exact package version or provide an integrity hash, verified provenance, or another cryptographic binding to reviewed source code.

Consequently, the code executed when the command is invoked can differ from the package version reviewed during the Skill audit. A compromised publisher account, malicious future release, registry compromise, or compromised transitive dependency could introduce arbitrary code. Linking to a source repository elsewhere in the document does not prove that the registry artifact being executed was built from the reviewed source.

### Attack Path

1. An attacker compromises the npm publisher account, package release pipeline, registry artifact, or a transitive dependency.
2. The attacker publishes a malicious package version or causes malicious dependency code to be resolved.
3. An Agent follows the Skill's instructions and runs:
   ```bash
   npx -y @gblin-protocol/mcp-server
   ```
4. `npx` resolves and downloads the current package and dependencies without requiring confirmation.
5. Package lifecycle scripts or runtime code execute with the privileges of the Agent's operating-system account.
6. The malicious code accesses or modifies resources available to that account, potentially including local files, credentials, Agent state, network services, wallet tooling, or transaction-signing interfaces.

### Impact Asse
...[truncated 871 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace the floating package reference with an exact, reviewed version, for example:

    bash
    npx -y @gblin-protocol/mcp-server@1.2.3
    

    An exact version reduces unexpected upgrades but does not independently guarantee artifact integrity.

  2. Publish and verify package provenance and integrity metadata. Document how users can confirm that the npm artifact was produced from the expected source commit and trusted build pipeline.

  3. Review and lock the complete transitive dependency graph. Use a lockfile for a controlled installation workflow and perform dependency, provenance, and vulnerability scanning before execution.

  4. Disable package lifecycle scripts where compatible, such as through a reviewed installation using npm install --ignore-scripts. Explicitly verify whether the package requires any lifecycle scripts before enabling them.

  5. Avoid direct first-use execution through npx. Prefer downloading into a controlled staging environment, verifying the artifact, and executing only after approval.

  6. Run the MCP server in a sandbox or container with minimal filesystem access, restricted outbound networking, no unnecessary environment variables, and no direct access to private keys.

  7. Keep wallet signing behind a separate, policy-enforcing interface that displays and validates chain ID, destination contract, asset, amount, and calldata before approval. Do not expose unrestricted signing capabilities to the package process.

  8. Document a trusted version, expected package digest, source commit, required permissions, and supported network destinations so operators can enforce least privilege.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill instructs users to execute npx -y @gblin-protocol/mcp-server without pinning a specific version or integrity hash, which causes retrieval and execution of whatever package is current on the registry at runtime. If the package is compromised, unpublished/republished, or the maintainer account is taken over, agents following the skill could run attacker-controlled code with the user's local permissions, making this a real supply-chain execution risk.

Content

No source excerpt is available for this finding.