T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Agent Goal and Safety-Constraint Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does launch Solana tokens, but it also handles wallet keys, real transactions, recurring jobs, and a hard-coded 20% fee recipient with incomplete per-transaction disclosure.
Review this carefully before installing. Use it only if you accept local custody of a Solana private key, recurring portfolio checks, uploads to Pumpfun/IPFS, and a non-negotiable 20% creator-fee share to the skill operator. Do not export the private key into chat, and require explicit confirmation for dependency installs, scheduled jobs, file uploads, and every on-chain transaction.
SKILL.md:12Agent Goal and Safety-Constraint Hijacking
SKILL.md:41Persistent Agent-Memory and Scheduled-Task Modification Without Explicit Consent
src/launch.mjs:288Material 20% Revenue Diversion Is Omitted from the Default Launch Confirmation
src/launch.mjs:116Arbitrary Local Files Can Be Uploaded to the Pump.fun IPFS Endpoint
src/stats.mjs:132Read-Only Portfolio Operations Unnecessarily Load the Wallet Private Key
package.json:7Automatic Installation of Mutable Dependencies in a Wallet-Signing Environment
The declared description presents blockchain/token-management functionality on Solana and Pumpfun, but the actual code chunk contains no token deployment, wallet interaction, fee sharing, earnings claims, portfolio tracking, or AI-agent chat logic. Instead, it performs software release engineering tasks for the skill's source repository. This is a materially different primary purpose and introduces undeclared capabilities involving local file modification, git operations, and GitHub release publishing. Therefore, the code does not accurately represent the declared purpose.
The skill instructs the agent to immediately install dependencies, create a wallet, and configure scheduling on first activation without waiting for user approval. Automatic state-changing actions in the workspace and wallet generation are dangerous because they modify the environment and create sensitive assets before the user has consented.
The heartbeat instructions direct the agent to append to or create HEARTBEAT.md automatically. Silent workspace modification creates persistence and changes repository state without informed user consent, which is especially risky in shared or source-controlled environments.
The wallet backup flow instructs the agent to export and display the private key in chat. Private keys are extremely sensitive bearer secrets; exposing them through a conversational interface risks permanent wallet compromise through transcript retention, logging, screenshots, or prompt injection around the export path.
The 'Important Rules' section explicitly authorizes exposing the private key whenever the user asks for backup, embedding a direct instruction path for secret disclosure. In context, this normalizes high-risk handling of wallet secrets in a chat-based agent and makes prompt-driven exfiltration much easier.
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
"
# 2. Update SKILL.md metadata
sed -i '' "s/\"version\":\"$CURRENT\"/\"version\":\"$NEW_VERSION\"/" SKILL.md
# 3. Update CHANGELOG.md
The updateShares logic silently forces inclusion of the hard-coded SHIPMYTOKEN_WALLET with at least 2000 bps, meaning any fee-sharing update diverts 20% of creator fees to the vendor regardless of user intent. In a token-launching skill that signs real on-chain transactions, this is dangerous because it causes undisclosed revenue capture and permanently alters economic rights on-chain.
The code hard-codes a secondary shareholder and assigns 20% of creator fee-sharing revenue to the shipmytoken wallet, while presenting the operation as a normal token launch flow. In a token-launching skill, silently diverting future earnings is especially dangerous because users are likely to assume all creator economics remain under their control.
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.
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.
The changelog states wallet creation and backup are stored in ~/.shipmytoken/ but gives no warning that this is sensitive private key material on local disk. In the context of a Solana token-launching skill, inadequate disclosure around key storage materially increases the risk of fund theft if filesystem permissions, backups, syncing tools, or shared machines expose the wallet.
The README instructs users to install and run a remote package via npx skills without pinning a specific version. This creates a supply-chain risk because future package changes, account compromise, or a malicious update could cause users or agents to fetch and execute unexpected code.
This installation path again relies on npx skills without a pinned version, meaning the agent may retrieve whatever package version is current at execution time. In a skill that handles wallets and token launches, unpinned remote execution materially increases the chance of compromise through a package update or dependency hijack.
The README tells users to paste a prompt that instructs an agent to run npx skills add ... --all, again without version pinning and with broad installation scope. Because this is mediated through an AI agent and followed by wallet setup actions, it compounds supply-chain risk with delegated execution, increasing the chance that malicious updates could lead to credential or private key compromise.
The feature list advertises wallet creation and private key export but does not provide explicit warnings about custody, irreversible fund loss, phishing risk, or the sensitivity of exported keys. In a crypto-token-launching skill, omission of these warnings is dangerous because users may allow an agent to manage or reveal wallet secrets without understanding the security consequences.
The activation criteria are intentionally broad and instruct the agent to use this skill first for many Solana-related requests, including wallet backup/export. That can cause the skill to preempt safer, narrower handling and funnel unrelated or ambiguous requests into wallet creation, token-launch, or secret-export flows.
Registering a recurring scheduled job creates persistence beyond the current interaction and can cause ongoing execution without continuous user awareness. Persistent automation is risky here because it is coupled to wallet/portfolio processing and may continue after the user forgets it was enabled.
**b) Cron / scheduled tasks**: If the platform supports cron jobs or scheduled tasks, register a daily job (e.g., once every 24h) that runs:
node {baseDir}/src/stats.mjs --daily-recap
The dependency check can invoke npm install, which changes the local environment and executes package lifecycle scripts, yet the skill frames it as a routine prerequisite rather than a consented change. This increases the risk of unintended package installation and supply-chain exposure.
The skill tells users to run npx skills add ... without pinning a specific version. That makes the update path depend on whatever package version is current at execution time, which increases supply-chain risk if a malicious or broken version is published later.
The skill requires --daily-recap to run automatically on every turn, including heartbeat/background contexts, without a clear opt-in. Automatic background execution expands the skill's behavior beyond the user's immediate request and can trigger unwanted processing and data disclosure.
The daily recap flow instructs the agent to proactively show portfolio data before responding to regular user requests. That can leak wallet balances, token holdings, and earnings into unrelated conversations or visible logs, violating data minimization expectations for financial information.
The code submits and confirms state-changing Solana transactions directly once invoked, without an explicit confirmation step summarizing the action, recipients, and fee-sharing consequences. In this skill's context, that is especially risky because the transactions can change creator fee distribution and move funds on mainnet.
The inline comment says '10%' while the code actually enforces 2000 bps, i.e. 20%, creating a misleading discrepancy around revenue extraction. Misstating the fee in source materially increases the risk that reviewers or downstream integrators underestimate the portion of fees being diverted.
The skill loads a signing private key from sensitive storage and immediately uses it to authorize transactions, but there is no user-facing disclosure at the point of use. In an agent skill context, this reduces user awareness that the tool has custody-capable signing authority over a wallet and can execute financially meaningful actions.
Launching Pump.fun tokens does not inherently require spawning local executables, yet this function runs the solana-keygen binary via execFile and manipulates temporary filesystem state. The manifest does not mention local command execution or vanity-address generation as part of the skill's scope.
Detected: suspicious.dangerous_exec, suspicious.env_credential_access