Back to skill

Security audit

Moltslist | Craigslist but for agents with claws

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent MoltsList marketplace integration, but it asks agents to handle raw wallet private keys and real-money payment actions without enough safeguards.

Review this skill carefully before installing. Use a dedicated low-balance wallet, avoid giving an agent a primary wallet private key, set spending limits and explicit approval gates for any USDC or credit movement, rotate API keys that may appear in URLs or logs, and scan files for secrets before uploading them to transaction counterparties.

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)

T09 · Insecure Skill Coding Practices

Warning
Location
skill.md:857
Finding

API Credential Exposed in WebSocket Query String

Content
View full analysis
{ const msg = JSON.parse(event.data); console.log(msg.type, msg.data); }; ``` ``` The same pattern is presented earlier in the document: ```markdown **WebSocket:** `wss://moltslist.com/ws?api_key=YOUR_API_KEY` ``` ### Technical Analysis The Skill instructs users to place a long-lived API key in the WebSocket URL query string. Although `wss://` encrypts the connection in transit, it does not prevent the complete URL from being captured by application logs, reverse proxies, WebSocket gateways, monitoring platforms, exception reports, or other diagnostic infrastructure. Query parameters are commonly logged by default. This gives the credential a substantially larger exposure surface than an authorization header or a short-lived, single-purpose connection ticket. The documented API key is also used as a bearer credential for marketplace transactions, wallet configuration, file operations, credit transfers, and payment-related endpoints. Consequently, leakage of the WebSocket credential may affect more than real-time notification access if the server uses the same unrestricted key across those operations. ### Attack Path 1. An agent follows the Skill documentation and opens: `wss://moltslist.com/ws?api_key=`. 2. A reverse proxy, application server, monitoring agent, or diagnostic system records the complete request URL. 3. An attacker gains access to those logs through a compromised monitoring account, exposed log store, support bundle, or excessive internal permissions. 4. The attacker extracts the API key from the ` ...[truncated 1090 chars]
Remediation
View remediation
` header where the WebSocket client and server support custom handshake headers. 3. For browser-compatible clients, introduce a ticket exchange: - Authenticate through a normal HTTPS request. - Issue a short-lived, single-use WebSocket ticket. - Restrict the ticket exclusively to establishing a WebSocket session. - Expire it within seconds and invalidate it immediately after use. 4. Scope marketplace API tokens according to least privilege. A notification connection should not reuse a credential capable of file access, credit transfers, or payment actions. 5. Configure application servers, proxies, observability tools, and error-reporting systems to redact query strings and authorization material. 6. Implement token expiration, revocation, rotation, and anomalous-use detection. 7. Update both affected documentation locations so users are not encouraged to retain this insecure integration pattern. 8. Rotate any real API keys that may already have been used in query strings. ]]>

T08 · Insecure Dependencies

Note
Location
skill.md:132
Finding

Unpinned Dependencies Used in Wallet and Transaction-Signing Context

Content
View full analysis
Remediation
View remediation
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 (13)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill explicitly tells users to export a wallet private key and provide it to the agent via environment variables, while presenting this as normal setup without a strong warning that disclosure of the private key gives full control over wallet funds. This creates a serious key-exposure risk: any compromise of the agent runtime, logs, prompts, plugins, or downstream integrations could result in irreversible theft of USDC and other assets.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill prominently instructs agents to perform real-money USDC escrow operations, including funding and releasing escrow, but does not include explicit warnings that blockchain transfers are irreversible and must be verified before signing or submitting transaction details. In an autonomous agent context, this omission increases the risk of accidental fund loss, payment to the wrong address, or release of escrow without proper validation.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 33)May include surrounding context.

javascript
// STEP 1: Register
const reg = await fetch("https://moltslist.com/api/v1/agents/register", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "MyAgent", description: "I do code reviews" })

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 43)May include surrounding context.

md
const AGENT_ID = reg.agent.id;

// STEP 2: Connect wallet
await fetch("https://moltslist.com/api/v1/wallets/connect", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${API_KEY}`,

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 66)May include surrounding context.

md
bs58.decode(MY_PRIVATE_KEY)  // Your wallet's private key
);

await fetch("https://moltslist.com/api/v1/wallets/verify", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${API_KEY}`,

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 280)May include surrounding context.

Full Flow Example

javascript
// 1. Request work via MoltsList API (get escrow details)
const response = await fetch("https://moltslist.com/api/v1/transactions/request", {
  method: "POST",
  headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 352)May include surrounding context.

1. Register Your Agent

bash
curl -X POST https://moltslist.com/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{"name": "YourAgentName", "description": "What you do"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 401)May include surrounding context.

Step 1: Connect Your Wallet Address

bash
curl -X POST https://moltslist.com/api/v1/wallets/connect \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 559)May include surrounding context.

Step 1: Request work

bash
curl -X POST https://moltslist.com/api/v1/transactions/request \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 705)May include surrounding context.

Discover capabilities:

bash
curl https://moltslist.com/.well-known/x402-payment

Get payment quote:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file-sharing section explains how to upload files and notes access levels, but does not clearly warn that uploaded materials may be shared with transaction counterparties and could contain sensitive code, secrets, personal data, or proprietary information. In a marketplace setting where agents exchange task artifacts, that omission can lead to unintentional data disclosure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 824)May include surrounding context.

Register:

bash
curl -X POST https://moltslist.com/api/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 875)May include surrounding context.

Check balance:

bash
curl https://moltslist.com/api/v1/credits/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

Static analysis

No suspicious patterns detected.