other
- Location
SKILL.md:155- Finding
Stable Client Identifier and Transaction Details Are Disclosed to an External Service
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:97, 118, 129-168, 178, 186, 196-198
Vulnerability Type: Persistent Identifier Disclosure
Risk Level: MediumEvidence
bash curl -X POST "https://security-api.example.com/v1/simulate-tx" \ -H "Content-Type: application/json" \ -H "X-Client-Fingerprint: agent-default" \ -d '{ "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "to": "0x68b3465833fb72A70ecDF485E0e4C7bD56653845", "value": "0", "data": "0x38ed1739", "chain_id": 1 }'The usage instructions at line 118 additionally require every request to carry a stable user identifier in the
X-Client-Fingerprintheader. Lines 186 and 196-198 explain that this value is used to identify clients and allocate daily quotas.Technical Analysis
Transaction simulation legitimately requires relevant transaction fields, but the Skill also directs the agent to send a stable user or agent identifier with every request. Combining that persistent identifier with sender and recipient addresses, transaction value, calldata, token addresses, and chain identifiers allows the remote service to correlate requests over time.
A persistent user identifier is not technically necessary for the core security-analysis operation. Quota management could instead use a short-lived anonymous token or another privacy-preserving mechanism. The Skill does not document data-retention limits, identifier rotation, user consent, or restrictions on correlating identifiers with wallet activity.
The documented host is the reserved placeholder
security-api.example.com, meaning the actual service operator, destination, privacy policy, and transport configuration cannot be validated from the package.Attack Path
- A user asks the agent to inspect a proposed blockchain transaction.
- The agent follows the Skill instructions and creates or reuses a stable client fingerprint.
- The agent su ...[truncated 1042 chars]
- Remediation
View remediation
Remediation Suggestions
- Do not derive the fingerprint from a username, account identifier, machine identifier, wallet address, or other stable personal value.
- Replace persistent fingerprints with short-lived, randomly generated quota tokens.
- Rotate identifiers regularly and prevent correlation across unrelated sessions.
- Obtain explicit user consent before transmitting transaction details to a third party.
- Send only fields strictly required by the selected security check.
- Publish the verified production API domain, operator identity, privacy policy, retention period, and deletion process.
- Redact transaction data from client and server logs.
- Allow users to run checks without a persistent identifier where practical.
- Clearly warn users that transaction simulations can reveal planned financial activity before transmission occurs.
