Back to skill

Security audit

Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill’s blockchain risk checks are coherent, but it asks agents to send a stable client fingerprint along with wallet transaction details to a third-party API without clear privacy limits.

Install only if you are comfortable sending transaction details such as wallet addresses, recipients, values, chain IDs, and possible calldata to aegis402.xyz. Use a non-PII, scoped fingerprint rather than an email, wallet address, or device identifier, and manually review any paid x402 call or public/feedback report before sending.

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
Findings (1)

other

Warning
Location
SKILL.md:29
Finding
Persistent User Fingerprint and Transaction Metadata Disclosed to a Third-Party Service<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:29`, `SKILL.md:39-40`, and `SKILL.md:168-186` **Vulnerability Type**: Privacy tracking and transaction metadata disclosure **Risk Level**: Medium ### Vulnerable Code The Skill instructs agents to assign and transmit a stable agent or user identifier: ```text 1. Set `X-Client-Fingerprint: <stable_agent_or_user_id>` for predictable free-tier accounting. ``` It also states that the service uses other identifying request signals if this value is omitted: ```text - Free tier is best-effort abuse-limited, not a security mechanism. Rotating fingerprints can bypass free-tier buckets. - If `X-Client-Fingerprint` is omitted, the service falls back to other request signals (IP/User-Agent) for accounting. ``` Transaction simulation sends wallet addresses, amounts, chain information, and potentially sensitive raw calldata to the remote service: ```markdown Request body fields: - `from` (required): sender address - `to` (required): recipient or contract - `value` (required): amount in wei (string) - `data` (optional): calldata hex (`0x...`) - `chain_id` (optional): chain being simulated (default: Base 8453 is a common choice for payments, but simulation chain is up to you) ```bash curl -X POST "https://aegis402.xyz/v1/simulate-tx" \ -H "Content-Type: application/json" \ -d '{ "from": "0xYourWallet...", "to": "0xContract...", "value": "0", "data": "0x", "chain_id": 8453 }' ``` ``` ### Technical Analysis Sending transaction parameters to a remote simulation service is related to the declared blockchain security functionality. However, requiring a stable agent- or user-level fingerprint exceeds the minimum data needed to analyze a transaction. A persistent identifier enables the API operator to correlate requests over time. When combined with `from`, `to`, `value`, `chain_id`, and raw calldata, the fingerprint can create a detailed profile of a user's wallet relationships, inten ...[truncated 2548 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Do not use a stable user-level identifier by default. Use an ephemeral, randomly generated identifier scoped to a single session or request. 2. If free-tier accounting requires persistence, scope the identifier to the installation rather than the person and rotate it regularly. 3. Ensure the fingerprint contains no email address, account name, wallet address, device identifier, or other directly identifying information. 4. Obtain explicit informed consent before transmitting transaction details to the third-party API. The confirmation should identify the destination and enumerate the data being sent. 5. Add a privacy notice describing data collection, purpose, retention period, log handling, deletion procedures, and whether information is shared with subprocessors. 6. Minimize submitted data. Do not transmit raw calldata when a less detailed local decode or risk check is sufficient. 7. Provide a preview of the outbound payload and allow users to redact optional fields before submission. 8. Avoid silently falling back to IP address and user-agent tracking. Clearly disclose such fallback behavior and provide an opt-out mechanism. 9. Separate rate-limit accounting identifiers from transaction-analysis records so they cannot be routinely joined. 10. Apply short retention periods, encryption at rest, strict access controls, audit logging, and automatic deletion to stored request data. 11. Preserve the existing prohibitions against collecting private keys, seed phrases, mnemonics, signatures, and other signing secrets. ]]>
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 (5)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill instructs agents to send a stable `X-Client-Fingerprint` and notes fallback to other request signals for accounting, but it does not clearly warn end users that this creates persistent request correlation and possible privacy tracking. In an agent context, stable identifiers can link user activity across scans and transactions, which is especially sensitive for blockchain behavior profiling.

External Transmission

Medium
Category
Data Exfiltration
Content
### Usage (Free)

```bash
curl "https://aegis402.xyz/v1/usage"
```

Example response:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
What I expected:
What happened:
Minimal repro (curl or steps):

Notes (redacted):
```
Confidence
83% confidence
Finding
The feedback endpoint transmits user-provided narrative, repro steps, endpoint details, status codes, agent metadata, and request IDs to an external service. Although the text says to obtain approval and redact secrets, this remains a real data exfiltration surface because agents may accidentally include sensitive operational details, wallet-related context, or other identifying information in free-form fields.

Description-Behavior Mismatch

Low
Confidence
90% confidence
Finding
The manifest describes the skill as scanning tokens, simulating transactions, and checking addresses for threats. However, the file also documents a separate `POST /v1/feedback` capability for sending issue reports and expectations back to the service, which goes beyond the stated blockchain-security checking scope.

Description-Behavior Mismatch

Low
Confidence
82% confidence
Finding
The manifest presents the skill as a blockchain security API for threat checks, but this section adds an additional user-story sharing workflow ('Share A Scam Catch') intended for public posting. That outreach/content-sharing behavior is not reflected in the manifest's stated purpose and is not necessary to perform token/address/transaction risk analysis.