Back to skill

Security audit

Einstein x402 Blockchain Analytics

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its paid blockchain analytics purpose, but it handles wallet payments and private keys with safeguards that need human review before installation.

Review carefully before installing. Use only a dedicated low-balance wallet, avoid --key and --save-config, do not enable autoConfirm, and only point the skill at an endpoint you trust because that endpoint controls the payment challenge that gets signed.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/lib/x402-pay.mjs:209
Finding

Remote Payment Challenge Is Signed Without Validating the Confirmed Amount, Recipient, Asset, or Network

Content
View full analysis
a.scheme === 'exact') || accepts[0]; // ---------------------------------------------------------- // Step 2: Sign EIP-712 TransferWithAuthorization // // Mirrors @x402/evm ExactEvmScheme.createPaymentPayload() exactly: // - requirement.maxAmountRequired is ALREADY in atomic units // - requirement.asset is the USDC contract address (verifyingContract) // - requirement.network may be CDP format ("base") or CAIP-2 ("eip155:8453") // - requirement.extra.{name,version} provides EIP-712 domain params // ---------------------------------------------------------- const nonce = createNonce(); const now = Math.floor(Date.now() / 1000); // Amount is already in atomic units (e.g., "250000" = $0.25 USDC) const amount = requirement.maxAmountRequired || requirement.amount || '0'; const authorization = { from: account.address, to: getAddress(requirement.payTo), value: amount, validAfter: (now - 600).toString(), // 10 minutes before (matches SDK) validBefore: (now + (requirement.maxTimeoutSeconds || 3600)).toString(), nonce, }; // Derive EIP-712 domain from requirement fields const chainId = networkToChainId(requirement.network); const verifyingContract = getAddress(requirement.asset); if (!requirement.extra?.name || !requirement.extra?.version) { throw new Error('Payment requirement missing extra.name/version for EIP-712 domain'); } const domain = { name: requirement.extra.name, version: requirement.extra.version, chainId, verifyingContract, }; ``` The price displayed to the user comes from a separate local pricing table: ```js const rawPrice = PRICING[command] || '?'; const price ...[truncated 3957 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/einstein-setup.mjs:175
Finding

Setup Workflow Exposes Wallet Private Keys Through Visible Input, Process Arguments, Logs, and Weak File Permissions

Content
View full analysis
{ rl.question(question, (answer) => { rl.close(); resolve(answer.trim()); }); }); } ``` When configuration is saved, no restrictive mode is applied programmatically: ```js if (saveConfig) { console.error('5. Writing config.json (--save-config flag detected)...'); const config = { privateKey, baseUrl, defaultChain, }; writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8'); console.error(` Written t ...[truncated 4149 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (64)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein-setup.mjs

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein-setup.mjs

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein-setup.mjs

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/einstein.mjs services

Static analysis

Detected: suspicious.env_credential_access, suspicious.exposed_secret_literal

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/einstein-setup.mjs:177

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/lib/x402-pay.mjs:38

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/einstein-setup.mjs:187