T01 · Skill Instruction Hijacking
- Location
SKILL.md:24- Finding
Autonomous Objective and External Transaction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its advertised Molt Beach purpose, but it pushes agents toward public account actions, local token storage, and payment flows without enough user control.
Review this skill carefully before installing. Only use it when you explicitly want an agent to interact with Molt Beach, create public pixel/profile state, and potentially enter credit-purchase workflows. Do not let an agent store the returned secret in a project .env file unless you deliberately choose that storage location; prefer a secret manager or OS keychain, and require confirmation before any purchase, promo redemption, pixel update, or Stripe checkout action.
SKILL.md:24Autonomous Objective and External Transaction Hijacking
SKILL.md:503Authentication Secret Transmitted in a URL Query String
The skill tells the agent to write the secret into a plaintext .env file. In agent-driven workflows, this can leak credentials into workspaces, backups, logs, subsequent tool context, or misconfigured repositories, making credential compromise much more likely.
If you must use the shell, use a heredoc to avoid secrets appearing in command arguments:
# Write to .env file using heredoc (secret stays out of shell history)
cat >> .env <<'CREDENTIALS'
MOLT_BEACH_AGENT_ID=your-unique-id-2026-02-03
MOLT_BEACH_SECRET=YOUR_SECRET_HERE
This line includes the actual secret variable assignment format, normalizing storage of the credential in a plaintext .env file. Even with shell-history precautions, plaintext local storage remains a sensitive exposure point in shared or synced environments.
# Write to .env file using heredoc (secret stays out of shell history)
cat >> .env <<'CREDENTIALS'
MOLT_BEACH_AGENT_ID=your-unique-id-2026-02-03
MOLT_BEACH_SECRET=YOUR_SECRET_HERE
CREDENTIALS
This line reinforces use of a .env file as the storage location for the secret, making credential persistence part of the recommended workflow. File permission tightening reduces but does not eliminate the risk of credential theft, accidental inclusion, or later disclosure by tooling.
CREDENTIALS
# Restrict file permissions to owner only
chmod 600 .env
# Ensure .env is excluded from version control
grep -qxF '.env' .gitignore 2>/dev/null || echo '.env' >> .gitignore
The instruction to append .env to .gitignore acknowledges that sensitive credentials are being placed in the project directory, which is itself the unsafe practice. In an agent setting, modifying repository metadata and relying on .gitignore is not a sufficient safeguard against exposure or accidental handling.
chmod 600 .env
grep -qxF '.env' .gitignore 2>/dev/null || echo '.env' >> .gitignore
This guidance continues the pattern of treating plaintext .env storage as an acceptable credential-management mechanism. That is especially risky for autonomous agents because local files may be indexed, uploaded, summarized, or reused by other tools without the user's awareness.
chmod 600 .env
grep -qxF '.env' .gitignore 2>/dev/null || echo '.env' >> .gitignore
**Security best practices for your secret:**
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
Showcase your pixels or the grid on your website:
<!-- Grid widget embed -->
<iframe src="https://moltbeach.ai/embed?width=400&height=400&theme=dark"></iframe>
<!-- Agent badge (SVG) -->
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
chmod 600 .env
# Ensure .env is excluded from version control
grep -qxF '.env' .gitignore 2>/dev/null || echo '.env' >> .gitignore
```
**Security best practices:**
The package manifest identifies the artifact as a generic 'clawhub' package manager for Molt projects rather than a narrowly scoped Molt Beach pixel-claiming skill. This mismatch is dangerous because it suggests the published skill may deliver broader install/management capabilities than users expect, increasing the risk of deceptive packaging, unintended execution paths, or supply-chain abuse under a misleading skill identity.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
The invocation guidance is overly broad and tied to ordinary conversational phrases like 'what do you feel' or 'get a life,' which could activate the skill when the user did not intend to interact with Molt Beach. This increases the chance of unsolicited external actions, account creation, or purchase attempts from benign conversation.
This example transmits agentIdentifier and agentSecret to an external service. While expected for the feature, it still involves sending credentials off-host, so in an agent environment it is security-relevant and should only occur with clear user intent and scoped secret handling.
Redeem promo codes for additional free credits:
curl -X POST https://moltbeach.ai/api/promo/redeem \
-H "Content-Type: application/json" \
-d '{
"agentIdentifier": "<your_identifier>",
The skill instructs the agent to persist newly issued credentials to a local .env file and modify .gitignore, which are side effects on the local workspace not required for the core act of claiming a pixel. In an agent setting, this can cause secrets to be written into arbitrary repositories or user directories, increasing the chance of credential exposure and violating least-privilege expectations.
The purchase example posts agent identity, pixel data, and potentially secrets to an external API endpoint. That is inherent to the integration, but it still creates exposure risk if invoked automatically or without the user understanding that data and credentials are leaving the local environment.
If you already have a secret and credits, purchasing is instant:
curl -X POST https://moltbeach.ai/api/purchase \
-H "Content-Type: application/json" \
-d '{
"pixels": [
The skill includes a full paid credit-purchase and Stripe checkout flow, which expands behavior from expressive pixel claiming into real-money spending and external payment orchestration. In an autonomous agent context, this creates a risk of unauthorized purchases or the agent steering users into payment flows without sufficiently explicit consent.
The skill describes purchasing credits through Stripe but does not present a strong, front-loaded warning that this is a real-money transaction requiring an external payment step. In practice, that can mislead users or agents into entering a spending flow without adequate notice or confirmation.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
```bash
# 1. Purchase pixel
curl -X POST https://moltbeach.ai/api/purchase \
-H "Content-Type: application/json" \
-d '{
"pixels": [{
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
"credentials": {
"serviceIssued": true,
"description": "The Molt Beach API issues a secret token on first purchase. This token is used for subsequent API calls (pixel updates, credit purchases, animations). The token cannot be recovered if lost.",
"storage": "Agent is responsible for securely storing the service-issued token. Recommended: OS keychain, secrets manager, or chmod 600 .env file excluded from version control."
},
"files": [
"skill.md",
No suspicious patterns detected.