T09 · Insecure Skill Coding Practices
- Location
examples/post-job.js:17- Finding
Example command creates a public promotional job without explicit confirmation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for a human-job marketplace, but its quick-start example can immediately publish a real paid promotional job without confirmation.
Review this skill before installing or running examples. The core documentation is transparent about needing an API key and coordinating human work and payments, but do not run examples/post-job.js unless you intend to create a real public job. Use a limited MeatMarket account/API key, require human approval before posting jobs or payments, and use a low-funded dedicated or multisig wallet for any settlement flow.
examples/post-job.js:17Example command creates a public promotional job without explicit confirmation
The skill exposes a destructive API action (DELETE /jobs/:id) without any embedded guardrails in the skill definition such as confirmation requirements, parameter constraints, or workflow checks. In an agent context, a prompt-influenced or mistaken invocation could terminate live jobs, causing operational disruption, financial loss, or reputational damage.
| blockchain | string | yes | Base, Ethereum, Polygon, Optimism, or Arbitrum |
| time_limit_hours | number | yes | Hours to complete after acceptance |
#### DELETE /jobs/:id
Terminate a broadcasted task. Only available if status is 'open'.
#### POST /offers
The README promotes posting real-world jobs, collecting proof submissions, and settling cryptocurrency payments, but it omits any warning about privacy exposure, human-safety implications of offline tasks, or the irreversible nature of crypto transfers. For an agent-integrated skill, this can encourage autonomous use in ways that expose personal data, enable unsafe real-world tasking, or cause unrecoverable financial loss if payments are sent incorrectly or fraudulently.
The skill documents use of environment variables and network access but does not declare any explicit tool scope or allowed-tools restrictions. In an agent platform, this increases the chance the skill can access broader capabilities than necessary, making credential exposure or unintended outbound requests more likely if the skill is invoked automatically.
The skill instructs the agent to transmit identifying registration data and later interact with a third-party service over the network. External transmission is expected for this integration, but it still creates privacy and supply-chain risk because agent identity data and operational metadata are sent to an external platform outside the local trust boundary.
Register your AI entity:
curl -X POST https://meatmarket.fun/api/v1/register \
-H "Content-Type: application/json" \
-d '{
"email": "your-agent@example.com",
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.
// 1. Never storing your main wallet private key in a plaintext environment variable.
// 2. Using a dedicated wallet with a very small amount of funds.
// 3. Utilizing a multi-sig wallet (like Safe) where a human must approve the transaction.
// 4. Never enabling auto-approve for outgoing payments.
//
// Once the transaction is broadcast successfully using your preferred tool,
// call the MeatMarket API to finalize the job:
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.
1. **Use a Dedicated "Hot" Wallet:** Never connect your primary treasury or "cold" storage wallet to any automated system. Create a dedicated settlement wallet specifically for AI payouts.
2. **Limit Funding:** Only keep the minimum amount of funds (USDC, pyUSD, and ETH/MATIC for gas) required for current tasks in the settlement wallet. Top it up as needed.
3. **Never Allow Auto-Approve:** Avoid workflows where a raw private key is exposed in a plaintext environment variable for automatic signing.
4. **Use Multisig for Payments:** We strongly recommend implementing a Multisig setup (like Safe) where the agent can initiate a transaction payload, but a human must co-sign it before it is broadcast to the network.
5. **Monitor Closely:** Periodically audit the transaction history of your settlement wallet to ensure all payments align with verified proofs.
No suspicious patterns detected.