Back to skill

Security audit

ZetaChain Omnichain Helper

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward ZetaChain lookup helper, but users should know it sends wallet addresses and transaction hashes to public blockchain RPC/API providers.

Install only if you are comfortable with the skill sending entered wallet addresses, optional BTC addresses, and CCTX hashes to public RPC/LCD/API providers such as thirdweb, BlockPI, LlamaRPC, Ankr, Binance, and Blockstream. It does not appear to sign transactions or move funds, but the publisher should improve provider disclosure, invocation scope, and the mismatch between advertised and implemented features.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The code partially matches the declared description because it supports cross-chain asset querying and CCTX tracking. However, two prominent declared capabilities—zEVM contract deployment guidance and technical documentation indexing—are not implemented at all. Instead, the code focuses on wallet balance lookups, gas-price checks, and generating operational suggestions such as refueling ZETA or depositing ETH. Those recommendation/navigation features are adjacent to the stated purpose but materially different from the omitted documentation and deployment-guide functions. Therefore, the description does not accurately represent the actual behavior.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
78% confidence
Finding

The skill advertises commands that appear to perform live balance and cross-chain tracking queries, which implies network access, but it does not declare any explicit tool scope or permissions. This creates an authorization and review gap: downstream platforms or users cannot clearly assess what external access the skill expects, increasing the chance of overbroad execution or unintended data egress.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown skill description explains capabilities broadly but does not define when the skill should be invoked versus when it should not. Without explicit trigger phrases, scope constraints, or negative examples, the activation conditions are ambiguous and could overlap with general requests about assets, tracking, or documentation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The natural-language instructions and descriptions are written in Chinese, which effectively imposes a language expectation on users without stating that this is optional or region-specific. Under the language/locale policy, skills should not force a specific language unless they offer opt-in or clearly document a justified locale constraint.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
92% confidence
Finding

This call sends a user-provided wallet address to third-party RPC nodes to retrieve balances. Even though balance lookups are expected behavior for this skill, sending identifiers to external providers without warning or user control creates a privacy leak and lets those providers correlate requests with users and IP metadata.

Content

Scanner excerpt · scripts/zeta_tool.py (reported line 29)May include surrounding context.

python
payload = {"jsonrpc": "2.0", "method": "eth_getBalance", "params": [address, "latest"], "id": 1}
    for node in node_list:
        try:
            r = requests.post(node, json=payload, timeout=5)
            result = r.json().get("result")
            if result: return int(result, 16) / 1e18
        except: continue

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script transmits user-supplied wallet addresses and CCTX hashes to third-party RPC/LCD services, which leaks user activity and identifiers to external operators without any explicit notice or consent. In a blockchain context these identifiers are often linkable to financial behavior, so the privacy impact is real even though the data is public on-chain.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/zeta_tool.py (reported line 49)May include surrounding context.

python
payload = {"jsonrpc": "2.0", "method": "eth_gasPrice", "params": [], "id": 1}
    for node in node_list:
        try:
            r = requests.post(node, json=payload, timeout=5)
            result = r.json().get("result")
            if result: return int(result, 16) / 1e9
        except: continue

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

User-facing strings in the help content are written exclusively in Chinese, including the intro, command descriptions, and highlights. This imposes a specific language on all users without presenting an alternative locale or documenting that the skill is intentionally region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.