Back to skill

Security audit

Bitagent Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims, but it can use a raw wallet private key to perform real, irreversible token launches and trades without enough guardrails.

Review before installing. Use only a dedicated low-balance wallet, prefer testnet first, keep the private key out of shared files and backups, and require a human confirmation step before any mainnet launch, buy, or sell. Pin and install the local runtime dependencies before running the CLI.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:19
Finding

Unpinned and Undeclared Runtime Package Execution Through npx

Content
View full analysis
--name "" --symbol "" --reserve-symbol "" npx tsx scripts/index.ts buy --network --token "" --amount "" npx tsx scripts/index.ts sell --network --token "" --amount "" ``` However, `tsx` is not declared as a project dependency: ```json { "name": "openclaw-bitagent", "module": "index.ts", "type": "module", "devDependencies": { "@types/bun": "latest" }, "peerDependencies": { "typescript": "^5" }, "dependencies": { "@bitagent/sdk": "^3.1.4", "dotenv": "^17.2.3", "siwe": "^3.0.0", "viem": "^2.45.1" } } ``` ### Technical Analysis When `npx` cannot find `tsx` in the local dependency tree, it may download and execute the package from the configured npm registry. The executed code is therefore not necessarily represented by the reviewed repository or its lockfile. This creates a mutable supply-chain execution path in a process that receives `PRIVATE_KEY`. Package compromise, registry manipulation, configuration of a malicious registry, or an unexpected future package release could cause arbitrary JavaScript to execute with the privileges of the OpenClaw process. The project also uses dependency ranges, and `@types/bun` is set to `latest`, reducing reproducibility. Although the lockfile pins currently resolved packages, it does not contain a local `tsx` dependency for the documented execution path. ### Attack Path 1. A user configures the Skill with a wallet private key. 2. The agent invokes one of the documented `npx tsx` commands. 3. No project-local `tsx` executable is ...[truncated 943 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
README.md:40
Finding

Plaintext Wallet Private Key Stored in OpenClaw Configuration

Content
View full analysis
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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (38)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
h bonding curves on BSC. It runs as a **CLI only**: the agent must **execute** `scripts/index.ts` and **return the command’s stdout** to the user.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
h bonding curves on BSC. It runs as a **CLI only**: the agent must **execute** `scripts/index.ts` and **return the command’s stdout** to the user.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
h bonding curves on BSC. It runs as a **CLI only**: the agent must **execute** `scripts/index.ts` and **return the command’s stdout** to the user.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
h bonding curves on BSC. It runs as a **CLI only**: the agent must **execute** `scripts/index.ts` and **return the command’s stdout** to the user.

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
h bonding curves on BSC. It runs as a **CLI only**: the agent must **execute** `scripts/index.ts` and **return the command’s stdout** to the user.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- **Repo root** — `SKILL.md`, `package.json`.

Known Vulnerable Dependency: axios==1.13.4 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
93% confidence
Finding

axios 1.13.4 is flagged with multiple advisories including SSRF/proxy bypass and prototype-pollution-related MITM/credential theft risks. This is particularly relevant because the skill interacts with external services and blockchain/IPFS-related endpoints through transitive dependencies, so unsafe HTTP client behavior can expose secrets, redirect requests, or reach unintended internal resources.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==8.17.1 — 2 advisory(ies): CVE-2026-45736 (ws: Uninitialized memory disclosure); CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
90% confidence
Finding

ws 8.17.1 is affected by memory disclosure and memory exhaustion DoS issues. Because this skill ecosystem includes blockchain/network tooling where WebSocket connectivity is common, a vulnerable ws version can let a malicious peer crash the process or potentially expose sensitive memory contents during websocket interactions.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: form-data==4.0.5 — 1 advisory(ies): CVE-2026-12143 (form-data: CRLF injection in form-data via unescaped multipart field names and f)

High
Category
Supply Chain
Confidence
88% confidence
Finding

form-data 4.0.5 is reported vulnerable to CRLF injection through unescaped multipart field names/filenames. In a skill that may upload token metadata or files to remote services such as IPFS/Pinata, attacker-controlled multipart fields could corrupt requests, smuggle headers, or manipulate downstream parsers if untrusted input is embedded.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: lodash==4.17.23 — 2 advisory(ies): CVE-2025-13465 (lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and ); CVE-2021-23337 (lodash vulnerable to Code Injection via `_.template` imports key names)

High
Category
Supply Chain
Confidence
87% confidence
Finding

lodash 4.17.23 carries advisories for prototype pollution and template-related code injection patterns. Because @bitagent/sdk depends on lodash and skills often process structured user input, unsafe use of lodash helpers on attacker-controlled paths/objects can mutate prototypes or enable dangerous template execution in downstream code paths.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: picomatch==4.0.3 — 2 advisory(ies): CVE-2026-33672 (Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Mat); CVE-2026-33671 (Picomatch has a ReDoS vulnerability via extglob quantifiers)

High
Category
Supply Chain
Confidence
80% confidence
Finding

picomatch 4.0.3 is flagged for ReDoS and matching-manipulation issues. This dependency is typically used in build or file-matching contexts rather than core runtime transaction logic, so exploitability in this skill is less certain, but if attacker-controlled glob patterns are processed it could still cause CPU exhaustion or incorrect file selection.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==8.18.3 — 2 advisory(ies): CVE-2026-45736 (ws: Uninitialized memory disclosure); CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
91% confidence
Finding

ws 8.18.3 is also affected by memory disclosure and memory exhaustion DoS issues. This copy is especially relevant because viem directly depends on ws for blockchain communications, so a malicious websocket endpoint or intermediary could trigger denial of service or leak process memory during chain interaction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README promotes launching, buying, and selling blockchain tokens but omits clear warnings that these are potentially real-asset, irreversible on-chain actions. In an agent skill context, that omission is more dangerous because operators may enable autonomous or semi-autonomous execution and underestimate financial loss, slippage, wrong-network, or irrecoverable transaction risks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README instructs users to place a wallet PRIVATE_KEY into skill configuration without emphasizing that it is a highly sensitive secret whose exposure enables full wallet compromise. In this skill's context, the key directly authorizes token launch and trading actions, so mishandling can lead to immediate theft of funds, unauthorized transactions, and persistent operational risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill instructs the agent to execute a CLI, use environment secrets, and interact with the network, but it declares no explicit tool scope or permission boundary. In an agent setting, this increases the chance of over-broad execution and unauthorized access to sensitive capabilities such as network calls and the wallet private key.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill describes token launch and buy/sell operations but provides no explicit warning that these blockchain actions are irreversible and may spend real funds. In an agent workflow, omission of a clear confirmation step materially increases the risk of accidental deployment, purchases, or sales that cannot be undone.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill requires a PRIVATE_KEY environment variable but does not warn about the extreme sensitivity of this credential or prescribe secure handling. Since the same skill also instructs returning command stdout to the user, weak secret-handling guidance raises the chance of credential exposure through logs, misconfiguration, or unsafe execution environments.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
Run from the **repo root** with env set. The CLI prints output to stdout. You must **capture that stdout and return it to the user**.

| Tool         | Command                                                                                                      | Result                                                                                               |
| ------------ | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| **launch**   | `npx tsx scripts/index.ts launch --network <bsc\|bscTestnet> --name "<name>" --symbol "<symbol>" --reserve-symbol "<UB\|WBNB\|USD1>"` | Deploys a new agent token on a bonding curve. Returns the Contract Address and URL on success.       |
| **buy**      | `npx tsx scripts/index.ts buy --network <bsc\|bscTestnet> --token "<tokenAddress>" --amount "<amount>"`                                  | Buys a specific amount of tokens. Returns Transaction Hash.                                          |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
Run from the **repo root** with env set. The CLI prints output to stdout. You must **capture that stdout and return it to the user**.

| Tool         | Command                                                                                                      | Result                                                                                               |
| ------------ | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| **launch**   | `npx tsx scripts/index.ts launch --network <bsc\|bscTestnet> --name "<name>" --symbol "<symbol>" --reserve-symbol "<UB\|WBNB\|USD1>"` | Deploys a new agent token on a bonding curve. Returns the Contract Address and URL on success.       |
| **buy**      | `npx tsx scripts/index.ts buy --network <bsc\|bscTestnet> --token "<tokenAddress>" --amount "<amount>"`                                  | Buys a specific amount of tokens. Returns Transaction Hash.                                          |

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

Using npx tsx without a pinned version allows tool resolution to vary over time and may fetch or execute an unexpected package version from the registry. In a skill that handles a blockchain private key and performs transactions, a compromised or changed runtime dependency could directly exfiltrate credentials or alter transaction behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The buy command relies on npx tsx without version pinning, creating a supply-chain risk at execution time. Because this path can sign and submit live trades, any substituted or malicious dependency could tamper with amounts, addresses, or steal the configured private key.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The sell flow has the same unpinned npx tsx execution risk, which is especially sensitive because it can trigger irreversible asset sales. In this context, runtime package drift or registry compromise can directly translate into financial loss and credential exposure.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access, suspicious.secret_argv_exposure

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/index.ts:100

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
SKILL.md:25