Back to skill

Security audit

Alkahest Developer

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent developer reference for blockchain escrow SDKs, but it gives copyable private-key and asset-moving transaction examples without enough safety framing for live funds.

Review this carefully before installing or using it with live wallets. Treat the examples as SDK references, not production-safe patterns: use testnets first, never hardcode or log private keys, verify chain IDs and contract addresses, and require explicit confirmation before signing transactions that approve tokens, lock funds, transfer payments, arbitrate outcomes, or slash/reclaim bonds.

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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This reference documents escrow locking, payment transfer, reclaim, and bond slashing flows but does not warn developers that some actions are irreversible or can permanently transfer user assets if parameters such as payee, arbiter, fulfillment UID, or expiration are wrong. In a developer skill focused on integrating live escrow/payment contracts, omission of safety warnings increases the chance that downstream code or UI will expose users to avoidable fund loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation demonstrates passing a raw private key string directly into the client constructor without any warning about secret handling. In a developer-focused SDK, this can normalize insecure credential practices, leading users to hardcode keys in source files, notebooks, logs, or shared examples where they may later be exposed and used to drain funds or impersonate the account.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The async example shows a write operation that creates an on-chain obligation but does not warn that the call submits a state-changing transaction with fees and potentially irreversible effects. In an escrow-contract SDK, omission of this context can mislead developers into testing against real networks or accounts and unintentionally creating obligations, spending funds, or producing permanent attestations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The client construction examples pass a raw private key string directly into the SDK without any warning about secret handling, storage, logging, or environment isolation. Developers may copy this pattern into production code, hardcode keys, commit them to source control, or expose them through logs and crash reports, leading to wallet compromise and fund loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The API reference documents many state-changing and value-moving methods such as approve, escrow, payment, barter, commit, reveal, claim, and arbitrate, but it does not warn that these operations sign transactions, spend funds, or may be irreversible on-chain. In a developer skill, omission of these cautions can lead users to integrate or invoke dangerous methods without adequate confirmation, simulation, network checks, or understanding of financial side effects.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/rust-api.md (reported line 97)May include surrounding context.

md
│   ├── payment()
│   └── barter()
│
├── native_token()                   // No approval needed
│   ├── escrow().non_tierable() / .tierable()
│   ├── payment()
│   └── barter()

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The documentation shows privateKeyToAccount("0xKEY") as part of normal client construction without any adjacent warning about secure secret handling. In a developer skill, examples are often copied verbatim, so this can normalize hardcoding private keys into source files, shell history, or test configs and lead to accidental credential exposure and wallet compromise.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/typescript-api.md (reported line 163)May include surrounding context.

md
│   ├── payment
│   └── barter
│
├── nativeToken                            // No util (no approvals needed)
│   ├── escrow.nonTierable / .tierable
│   ├── payment
│   └── barter