Back to skill

Security audit

Chainbase OpenAPI Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a disclosed read-only Chainbase API helper, but its setup loads a changeable remote schema, so the generated CLI may differ from the reviewed package.

Review before installing. Prefer linking UXC to the bundled local schema or to an immutable, verified schema URL, and use a Chainbase API key with the least privileges available. Do not run broad wallet or token-holder crawls unless you are comfortable sending those identifiers to Chainbase.

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

Warning
Location
SKILL.md:57
Finding
Mutable Remote OpenAPI Schema Weakens Supply-Chain Integrity## Vulnerability Details **File Location**: `SKILL.md:57-60`; duplicated in `references/usage-patterns.md:5-9` **Vulnerability Type**: Unpinned remote dependency **Risk Level**: Medium **Vulnerable code in `SKILL.md`:** ```bash 1. Use the fixed link command by default: - `command -v chainbase-openapi-cli` - If missing, create it: `uxc link chainbase-openapi-cli https://api.chainbase.online --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/chainbase-openapi-skill/references/chainbase-web3.openapi.json` - `chainbase-openapi-cli -h` ``` **Duplicated vulnerable code in `references/usage-patterns.md`:** ```bash command -v chainbase-openapi-cli uxc link chainbase-openapi-cli https://api.chainbase.online \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/chainbase-openapi-skill/references/chainbase-web3.openapi.json chainbase-openapi-cli -h ``` ### Technical Analysis The generated CLI is linked using an OpenAPI schema downloaded from the mutable `main` branch of an external GitHub repository. No immutable commit reference, version tag with integrity verification, or cryptographic digest is specified. The project includes a locally reviewable schema at `references/chainbase-web3.openapi.json`, but the documented runtime workflow does not use it. Consequently, the effective API definition used after installation can differ from the artifact reviewed during this audit. If the upstream repository, account, branch, or delivery path is compromised, an attacker could alter the remotely supplied schema. Depending on UXC's schema processing behavior, this could change the available operations, request parameters, or request construction associated with the generated CLI. The reviewed local schema itself only defines seven GET operations and does not contain an executable payload. ### Attack Path 1. An attacker obtains permission to modify the referenced upstrea ...[truncated 1637 chars]
Remediation
## Remediation Suggestions 1. Use the bundled schema as the default source: ```bash uxc link chainbase-openapi-cli https://api.chainbase.online \ --schema-url ./references/chainbase-web3.openapi.json ``` 2. If remote retrieval is required, pin the URL to an immutable Git commit rather than `main`: ```text https://raw.githubusercontent.com/holon-run/uxc/<full-commit-sha>/skills/chainbase-openapi-skill/references/chainbase-web3.openapi.json ``` 3. Publish and verify a SHA-256 digest before passing the schema to UXC. Abort linking when verification fails. 4. Update `scripts/validate.sh` to ensure documentation does not reference mutable branches and that any remote schema digest matches the bundled schema. 5. Keep the API host allowlist and HTTPS credential binding. Additionally, validate that the loaded schema: - Uses only `https://api.chainbase.online`. - Contains only the intended seven GET operations. - Defines no write methods. - Retains `X-API-KEY` as the expected authentication header. 6. Apply the same corrected command in both `SKILL.md` and `references/usage-patterns.md` to prevent users from following an obsolete insecure setup path.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The declared description says the skill operates Chainbase indexed wallet and token reads via UXC with API-key auth and read-first guardrails. However, the supplied code chunk does not perform any Chainbase API calls, UXC operations, wallet reads, or token reads. It is a local CI-style validator script that ensures required files exist and contain expected text/configuration. While those checks support the declared skill, the actual code's primary purpose is validation of packaging/documentation, not operation of the Chainbase integration itself. That is a material description-behavior mismatch for this specific code chunk.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
This JSON manifest describes HTTPS requests protected by an API key and several endpoints that transmit account addresses, contract addresses, and transaction hashes as query parameters. The file presents these network operations as read-only, but it does not include any description or warning that user-supplied identifiers will be sent to an external service or that an API credential is required.

Description-Behavior Mismatch

Medium
Confidence
92% confidence
Finding
The manifest describes the skill as operating indexed wallet and token reads, which strongly suggests balances, token holdings, and similar direct lookup queries. The curated OpenAPI surface also exposes account transaction history (/v1/account/txs), transaction detail (/v1/tx/detail), and token holder enumeration (/v1/token/holders), which expand into broader blockchain analytics capabilities not clearly implied by that narrower description.

Static analysis

No suspicious patterns detected.