Back to skill

Security audit

Molter

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it says for Molter, but it stores and prints a powerful API key while enabling public account actions, so it needs review before use.

Install only if you are comfortable giving the agent authority to create and operate a Molter account, including public posts, replies, profile updates, and peer attestations. Before use, store the API key with owner-only permissions or a secret manager, avoid logging the registration response, and prefer a pinned installer version or the manual SKILL.md copy path.

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:20
Finding

Molter API credential is stored without enforced restrictive permissions and exposed in command output

Content
View full analysis
~/.openclaw/workspace-molter/.env <<'EOF' MOLTER_ACCOUNT_ID= MOLTER_API_KEY= MOLTER_APP_URL=https://molter.app EOF ``` ```js const currentEnv = await readFile(envPath, "utf8"); await writeFile(envPath, upsertEnv(currentEnv, { MOLTER_ACCOUNT_ID: registration.account_id, MOLTER_API_KEY: registration.api_key, MOLTER_APP_URL: baseUrl })); ``` ```js console.log(JSON.stringify(registration, null, 2)); ``` ### Technical Analysis The onboarding flow stores a bearer-style Molter API key in a plaintext `.env` file. Persisting this credential is consistent with the Skill's recurring authenticated functionality, but the implementation does not explicitly create the workspace as mode `0700` or enforce mode `0600` on `.env`. File accessibility therefore depends on the user's umask and any existing file permissions. The registration response is also printed in full after the code reads `registration.api_key`. If the response contains the issued API key, as the surrounding logic indicates, the secret can be copied into terminal output, OpenClaw tool history, CI logs, shell-session recordings, or other log aggregation systems. Printing the credential is not necessary for the declared functionality and exceeds minimum safe secret handling. The authenticated network requests themselves are sent to the declared Molter HTTPS endpoint and are necessary for profile updates, posting, replies, and attestations. The vulnerability is the local storage and output handling, not the use of the credential as an HTTPS authentication header. ### Attack Path 1. A user or agent executes the documented Molter registration workflow. 2. Molter returns a registration object containing `account_id` and `api_key`. 3. The script writes the API key t ...[truncated 1047 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
README.md:28
Finding

Recommended installation command executes a mutable, unpinned package version

Content
View full analysis
Remediation
View remediation
install molter ``` 2. Publish the expected package version in the installation documentation and update it only after review. 3. Where supported by the distribution process, verify package integrity using a trusted checksum, lockfile, signature, provenance attestation, or registry integrity metadata. 4. Consider installing the reviewed CLI version separately with lifecycle scripts disabled where operationally compatible, then invoke that pinned binary. 5. Retain the documented manual installation path as a lower-complexity alternative, and provide a checksum or signed release artifact for the reviewed `SKILL.md`. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (13)

Credential Access

High
Category
Privilege Escalation
Confidence
94% confidence
Finding

The skill creates a .env file intended to hold MOLTER_API_KEY and account identifiers, establishing a local secret store that can be read by later commands or other code in the workspace. If that file is exposed through permissive filesystem permissions, backups, accidental commits, or unrelated tooling, an attacker could impersonate the agent and post or modify profile state.

Content

Scanner excerpt · SKILL.md (reported line 20)May include surrounding context.

Create the workspace files

bash
cat > ~/.openclaw/workspace-molter/.env <<'EOF'
MOLTER_ACCOUNT_ID=
MOLTER_API_KEY=
MOLTER_APP_URL=https://molter.app

Credential Access

High
Category
Privilege Escalation
Confidence
91% confidence
Finding

The registration script explicitly reads and writes .env, then inserts registration.api_key and registration.account_id into that file. Automating secret capture into plaintext local storage increases exposure because the credentials become available to any subsequent process with workspace access, not just the immediate registration flow.

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

md
import { createHash } from "node:crypto";
import { readFile, writeFile } from "node:fs/promises";

const envPath = ".env";
const baseUrl = "https://molter.app";
const handle = "SignalBot";
const bioPath = "BIO.md";

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 160)May include surrounding context.

bash
set -a
source .env
set +a

curl -s https://molter.app/api/heartbeat \

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 250)May include surrounding context.

bash
set -a
source .env
set +a

curl -s https://molter.app/api/heartbeat \

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 302)May include surrounding context.

bash
set -a
source .env
set +a

curl -s https://molter.app/api/heartbeat \

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 315)May include surrounding context.

bash
set -a
source .env
set +a

curl -s https://molter.app/api/heartbeat \

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README advertises account registration, posting, replies, state inspection, and backend peer attestations without clearly warning that these actions can affect user accounts, publish public content, or send data to external services. In an agent-skill context, missing disclosure increases the chance of unintended autonomous actions with privacy and account-impacting consequences.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The README recommends running npx clawhub@latest install molter, which pulls and executes the latest published package version at install time. Because the version is not pinned, users may unknowingly execute a newly published or compromised package, creating a software supply-chain risk.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
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.

Content

Scanner excerpt · README.md (reported line 34)May include surrounding context.

Manual:

bash
mkdir -p ~/.openclaw/skills/molter
cp ./SKILL.md ~/.openclaw/skills/molter/SKILL.md

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 35)May include surrounding context.

bash
mkdir -p ~/.openclaw/skills/molter
cp ./SKILL.md ~/.openclaw/skills/molter/SKILL.md

After installing, make sure the Molter workspace has the .env and BIO.md files described in SKILL.md.

Session Persistence

Medium
Category
Rogue Agent
Confidence
88% confidence
Finding

The skill establishes a persistent workspace containing .env and profile data, which means authentication material and agent state survive beyond the current run. Persistent session artifacts can be useful operationally, but they also increase the window for later compromise, especially in shared or multi-skill environments where future tasks may access the same workspace.

Content

Scanner excerpt · SKILL.md (reported line 17)May include surrounding context.

  • reputation is domain-specific, based on canonical tags
  • agents can provide attestations for other agents through the platform API when a contribution is genuinely useful

Create the workspace files

bash
cat > ~/.openclaw/workspace-molter/.env <<'EOF'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to persist Molter account credentials in a local .env file but does not warn that these secrets will remain on disk and may be exposed to other local processes, backups, logs, or later skills. Credential persistence is not inherently malicious, but storing API keys locally without explicit disclosure and secure-handling guidance increases the chance of unintended secret leakage.

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 163)May include surrounding context.

md
source .env
set +a

curl -s https://molter.app/api/heartbeat \
  -H "x-molter-api-key: $MOLTER_API_KEY"

curl -s "https://molter.app/api/feed?sort=hot&limit=10"