Back to skill

Security audit

Skill

Security checks for vulnerabilities and agentic risk

Overview

This wallet skill is mostly coherent, but its documents make conflicting claims about whether the agent can authorize low-value transactions without Guardian co-signing.

Install only after confirming Sigil's actual transaction signing policy. In particular, verify whether low-value transactions can be signed by the agent alone, set conservative per-transaction and daily limits, whitelist targets/functions, use a dedicated agent signer with minimal funds, and keep the API key and signer out of logs and client-side code.

Vulnerability Patterns
  • 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
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:54
Finding

Contradictory Guardian Co-Signing Requirements May Weaken Transaction Authorization

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:54-57; references/api-reference.md:62-65
Vulnerability Type: Inconsistent and potentially unsafe authorization configuration
Risk Level: High

Vulnerable Documentation Snippets

SKILL.md:54-57:

markdown
**Key safeguards:**

- **Dual-signature enforcement:** Every transaction requires both the agent's signature AND the Guardian's co-signature. The smart contract rejects any UserOp missing either. The agent signer alone cannot execute any transaction.
- **Zero admin privileges:** The agent signer cannot change policy, modify whitelists, freeze accounts, rotate credentials, or escalate permissions. Only the human owner wallet can perform administrative actions.

references/api-reference.md:62-65:

markdown
### Co-Signing Tiers
- **LOW** (below `guardianThreshold`): Agent signs alone
- **MEDIUM** (above `guardianThreshold`): Agent + Guardian co-sign
- **HIGH** (above `ownerThreshold`): Agent + Guardian + Owner all sign

Technical Analysis

The primary security documentation states that every transaction requires both the agent and Guardian signatures and that the agent signer cannot execute a transaction alone. The API reference directly contradicts this guarantee by documenting a LOW tier in which the agent signs alone.

Dual-signature enforcement is presented as the core control limiting the consequences of compromise of SIGIL_AGENT_SIGNER. If the tier model accurately reflects the deployed authorization logic, LOW-tier transactions do not benefit from the promised independent Guardian authorization. Operators relying on the stronger statement may consequently provision the signer or configure transaction thresholds under an incorrect threat model.

The repository contains documentation and metadata only, so the underlying smart-contract behavior cannot be verified from the audited artifact. Nevertheless, the contradictory secur ...[truncated 1899 chars]

Remediation
View remediation

Remediation Suggestions

  1. Establish the actual contract-enforced signature requirements for each transaction tier and treat the deployed smart contracts as the authoritative source.
  2. If every transaction requires Guardian co-signing, remove the agent-only LOW tier from references/api-reference.md and add automated tests proving that an agent-only UserOperation is rejected at every value level.
  3. If LOW-tier transactions are intentionally agent-only, remove all claims that every transaction is dual-signed. Clearly document:
    • The default and configurable guardianThreshold.
    • Whether thresholds are calculated per transaction or cumulatively.
    • Which asset valuation source and units are used.
    • Applicable target and function restrictions.
    • Daily spending and transaction-velocity limits.
    • Whether repeated LOW-tier transactions trigger escalation.
  4. Default to Guardian co-signing for all transactions. If an agent-only tier is necessary, use a minimal threshold and enforce strict cumulative spending and velocity limits on-chain.
  5. Add specification-consistency checks to release review so absolute security claims cannot conflict with endpoint or contract documentation.
  6. Add integration tests for LOW, MEDIUM, and HIGH boundary values, including repeated operations immediately below each threshold.
  7. Provide an operator-visible description of the effective signature policy and require explicit owner confirmation before enabling any agent-only execution mode.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (13)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 84)May include surrounding context.

Credential Handling

Secure storage: Use a secrets manager (1Password CLI, Vault, AWS Secrets Manager) for production. For local setups, ensure chmod 600 ~/.openclaw/openclaw.json.

bash
# Production: inject at runtime

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 96)May include surrounding context.

md
**Pre-install checklist:**
- [ ] Generated a dedicated agent signer (not your owner wallet)
- [ ] Agent signer holds minimal gas only (< 1 POL/ETH/AVAX)
- [ ] Config file has restricted permissions (`chmod 600`)
- [ ] Sigil account policies configured (spending limits, whitelists)

## Installation (OpenClaw)

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The documented authentication flow sends the long-lived SIGIL_API_KEY to a remote service in exchange for a JWT. Although this is the intended design, it still constitutes transmission of a sensitive credential to an external party; compromise of the endpoint, logs, or TLS-terminating infrastructure could expose the key and enable unauthorized API access.

Content

Scanner excerpt · SKILL.md (reported line 116)May include surrounding context.

Authenticate

text
POST https://api.sigil.codes/v1/agent/auth/api-key
Body: { "apiKey": "<SIGIL_API_KEY>" }
Response: { "token": "<JWT>" }

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The execute endpoint transmits signed userOp contents, including target call data and signature, to a third-party API for co-signing and submission. In this wallet context that is intentional, but it creates trust and privacy risk because a remote service observes transaction details and becomes a critical control point for execution decisions.

Content

Scanner excerpt · SKILL.md (reported line 131)May include surrounding context.

Execute (Evaluate + Co-sign + Submit On-Chain)

text
POST https://api.sigil.codes/v1/execute
Headers: Authorization: Bearer <JWT>
Body: { "userOp": { "sender": "<account>", "nonce": "0x...", "callData": "0x...", "signature": "0x..." }, "chainId": 137 }
Response: { "verdict": "APPROVED", "txHash": "0x..." }

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 186)May include surrounding context.

md
|-------|-----|-----|-------------|
| Ethereum | 1 | `https://eth.drpc.org` | ETH |
| Polygon | 137 | `https://polygon.drpc.org` | POL |
| Avalanche | 43114 | `https://api.avax.network/ext/bc/C/rpc` | AVAX |
| Base | 8453 | `https://mainnet.base.org` | ETH |
| Arbitrum | 42161 | `https://arb1.arbitrum.io/rpc` | ETH |
| 0G | 16661 | `https://0g.drpc.org` | A0GI |

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · references/agent-setup-guide.md (reported line 67)May include surrounding context.

bash
# Get a Bearer token using your API key
curl -X POST https://api.sigil.codes/v1/agent/auth/api-key \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "sgil_your_key_here"}'

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 28)May include surrounding context.

md
# Sigil Protocol — Full API Reference

Base URL: `https://api.sigil.codes/v1`

## Authentication Endpoints

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 123)May include surrounding context.

md
# Sigil Protocol — Full API Reference

Base URL: `https://api.sigil.codes/v1`

## Authentication Endpoints

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 · references/agent-setup-guide.md (reported line 67)May include surrounding context.

md
# Sigil Protocol — Full API Reference

Base URL: `https://api.sigil.codes/v1`

## Authentication Endpoints

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 · references/agent-setup-guide.md (reported line 78)May include surrounding context.

md
# Sigil Protocol — Full API Reference

Base URL: `https://api.sigil.codes/v1`

## Authentication Endpoints

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 · references/api-reference.md (reported line 3)May include surrounding context.

md
# Sigil Protocol — Full API Reference

Base URL: `https://api.sigil.codes/v1`

## Authentication Endpoints

Excessive Permissions

Low
Category
Privilege Escalation
Confidence
80% confidence
Finding

Skill requests more permissions than appear necessary for its stated functionality. Review if elevated access is justified.

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

md
**Key safeguards:**

- **Dual-signature enforcement:** Every transaction requires both the agent's signature AND the Guardian's co-signature. The smart contract rejects any UserOp missing either. The agent signer alone cannot execute any transaction.
- **Zero admin privileges:** The agent signer cannot change policy, modify whitelists, freeze accounts, rotate credentials, or escalate permissions. Only the human owner wallet can perform administrative actions.
- **Instantly rotatable:** Generated fresh during onboarding. If compromised, rotate instantly via Dashboard → Emergency (single owner-signed on-chain transaction).
- **Guardian enforcement:** Independent validation enforces target whitelists, function selector whitelists, per-tx value limits, daily spending limits, velocity checks, and AI anomaly detection.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

This markdown file documents authentication flows, JWT usage, delegation signing, and API key generation/revocation, but it does not include any warning about protecting API keys/JWTs or the security consequences of exposing them. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors affecting privacy, user data, or system integrity.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.