Back to skill

Security audit

Tezos Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent Tezos development guide, but it asks for broad command authority and includes production-oriented blockchain guidance with a verified unsafe FA2 code pattern.

Review this skill carefully before installing. Prefer the ClawHub-reviewed version or a pinned, checksummed commit; remove or narrow npm access; require explicit confirmation for any octez-client action that spends fees, originates contracts, transfers assets, or targets mainnet; and do not copy the FA2 operator pattern without fixing token_id-scoped authorization and adding tests.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:209
Finding

FA2 Operator Authorization Is Not Scoped by Token ID

Content
View full analysis
sender then let key = (xfer.from_, sender) in if not Big_map.mem key storage.operators then failwith "FA2_NOT_OPERATOR" else () else () in ``` ```ligo type operator_update = | Add_operator of address * address * nat | Remove_operator of address * address * nat [@entry] let update_operators (updates : operator_update list) (storage : storage) : operation list * storage = let sender = Tezos.get_sender() in let process_update (storage, update : storage * operator_update) : storage = match update with | Add_operator (owner, operator, token_id) -> let () = if sender <> owner then failwith "FA2_NOT_OWNER" else () in {storage with operators = Big_map.add (owner, operator) () storage.operators} | Remove_operator (owner, operator, token_id) -> let () = if sender <> owner then failwith "FA2_NOT_OWNER" else () in {storage with operators = Big_map.remove (owner, operator) storage.operators} in let storage = List.fold_left process_update storage updates in [], storage ``` ### Technical Analysis The operator-update interface accepts a `token_id`, but that value is discarded when the authorization record is created or removed. The transfer authorization check likewise constructs its key from only `(owner, operator)`. For an FA2 implementation with token-specific operators, the authorization key must include all three values: ```text (owner, operator, token_id) ``` The documented implementation instead grants an operator authority at the owner level. Consequently, approval associated with one token ID can satisfy authorization checks for every token held by the same owner. Because this Skill presents the code as an FA2 implementation pattern, developers may copy the flaw into production co ...[truncated 1048 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
README.md:18
Finding

Installation Uses a Mutable and Unverified Remote Source

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:5
Finding

Skill Declares Unnecessarily Broad npm Command Execution Capability

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 24)May include surrounding context.

git clone https://github.com/efekucuk/tezos-skill tezos

or download SKILL.md directly

mkdir -p ~/.claude/skills/tezos curl -o ~/.claude/skills/tezos/SKILL.md https://raw.githubusercontent.com/efekucuk/tezos-skill/master/SKILL.md

text

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README.md (reported line 24)May include surrounding context.

git clone https://github.com/efekucuk/tezos-skill tezos

or download SKILL.md directly

mkdir -p ~/.claude/skills/tezos curl -o ~/.claude/skills/tezos/SKILL.md https://raw.githubusercontent.com/efekucuk/tezos-skill/master/SKILL.md

text

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 25)May include surrounding context.

or download SKILL.md directly

mkdir -p ~/.claude/skills/tezos curl -o ~/.claude/skills/tezos/SKILL.md https://raw.githubusercontent.com/efekucuk/tezos-skill/master/SKILL.md

text

### cursor

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 25)May include surrounding context.

or download SKILL.md directly

mkdir -p ~/.claude/skills/tezos curl -o ~/.claude/skills/tezos/SKILL.md https://raw.githubusercontent.com/efekucuk/tezos-skill/master/SKILL.md

text

### cursor

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README promotes deployment workflows and use with blockchain operations tooling, including mainnet, without any warning that actions may affect live contracts or real funds. In a blockchain-development skill, omission of safety guidance can contribute to accidental production deployments or fund loss by users who assume examples are safe for unrestricted use.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 597)May include surrounding context.

octez-client get contract storage for my_contract

Check operations

curl https://api.shadownet.tzkt.io/v1/contracts/KT1.../operations

text

### Step 4: Security Review

Static analysis

No suspicious patterns detected.