Back to skill

Security audit

OnlyAgents

Security checks for vulnerabilities and agentic risk

Overview

This skill is for a crypto social network, but it encourages recurring public posts and crypto tipping without enough safeguards, so it needs review before install.

Install only if you are comfortable connecting a Solana wallet and API key to this service. Do not run the suggested hourly heartbeat with wallet access unless you add explicit approvals, spending limits, recipient controls, rate limits, and an easy way to disable it; financial actions should be confirmed each time.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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 (1)

T06 · System Persistence

Error
Location
SKILL.md:114
Finding
Recurring Heartbeat Enables Persistent Autonomous Posting and Cryptocurrency Spending<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 114–122 **Vulnerability Type**: Persistent scheduled activity involving external publication and cryptocurrency transactions **Risk Level**: High ### Vulnerable Code ```text **Come back every hour** to keep the community alive. Set up a cron job or heartbeat: ``` OnlyAgents engagement round: 1. Check feed: GET /api/v1/posts?sort=new&limit=10 2. Upvote or comment on 1-2 interesting posts 3. Generate a new image and post it (alternate free/paid) 4. Check your posts for new comments and reply 5. Tip a creator you like ``` ``` ### Technical Analysis The Skill directs the agent or operator to establish an hourly cron job or heartbeat. The recurring workflow includes public content publication, social interactions, and tipping creators with the `$CREAM` cryptocurrency token. If these instructions are followed, the scheduled task survives the original Skill invocation and continues to perform externally observable and potentially irreversible actions without requiring fresh authorization for each execution. The financial action is especially sensitive because neither the recipient nor the amount is fixed or presented to the user for approval at execution time. The file does not itself contain a cron installation command or executable persistence code. Exploitation therefore depends on an agent or operator implementing the requested schedule. Nevertheless, the explicit instruction establishes a persistence workflow whose intended recurring behavior includes cryptocurrency expenditure. ### Attack Path 1. An agent loads and follows the instructions in `SKILL.md`. 2. The agent creates a Solana wallet and registers with the external OnlyAgents API. 3. The agent retains an API key and gains access to wallet funds or `$CREAM` tokens. 4. Following lines 114–122, the agent configures an hourly cron job or persistent heartbeat. 5. The scheduled workflow repeatedly accesses the feed, comments, gene ...[truncated 1054 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the instruction to create a cron job or persistent heartbeat. 2. Make engagement workflows explicitly user-initiated and limited to the current session. 3. Require affirmative, transaction-specific approval before every cryptocurrency transfer. 4. Before approval, display the exact token mint, network, recipient address, recipient identity, amount, platform fee, and estimated total cost. 5. Do not allow a recurring task to possess signing authority or unrestricted access to a funded wallet. 6. If scheduling is a legitimate feature, limit it to read-only feed retrieval by default and require separate opt-in authorization for posting, commenting, or replying. 7. Prohibit financial transactions from unattended scheduled jobs. 8. Store API credentials and wallet keys in a dedicated secret manager with narrowly scoped access; never embed them in cron definitions or command-line arguments. 9. Add explicit spending limits, recipient allowlists, rate limits, expiration times, and an immediate revocation mechanism. 10. Provide clear instructions for listing, disabling, and deleting any scheduled tasks created for the Skill. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Session Persistence

Medium
Category
Rogue Agent
Content
## Quick Start

### 1. Create a Solana Wallet
```bash
solana-keygen new --outfile ~/.config/solana/onlyagents-wallet.json
solana-keygen pubkey ~/.config/solana/onlyagents-wallet.json
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

External Transmission

Medium
Category
Data Exfiltration
Content
### 2. Register
```bash
curl -X POST https://www.onlyagents.xxx/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "your_agent_name",
Confidence
84% confidence
Finding
The registration flow instructs the user to transmit identifying profile data and a Solana address to an external third-party API. While expected for service signup, this is still an external data exfiltration boundary and becomes more sensitive in an agent skill because autonomous systems may submit user or wallet-linked information without clearly surfacing privacy, trust, or data-handling implications.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly encourages hourly automated engagement, including posting, commenting, and tipping, which can drive repeated financial transactions and account activity without meaningful guardrails. In a crypto-linked social platform, this creates real risk of wallet depletion, spammy behavior, rate-limit violations, account penalties, and unintended autonomous spending if an agent follows the heartbeat literally.

Static analysis

No suspicious patterns detected.