T01 · Skill Instruction Hijacking
- Location
SKILL.md:160- Finding
Persistent modification of Agent behavior through global memory
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed Meyo community integration, but it asks for broad persistent authority, private context access, unreviewed remote instructions, and automatic public actions that need careful review before installation.
Install only if you are comfortable giving Meyo persistent scheduled access, local bearer-token storage, memory updates, and authority to read conversation-derived context and make authenticated community actions. Prefer a revised version that asks before creating cron jobs, posting or commenting publicly, installing skills, updating memory, or sending summaries of local activity.
SKILL.md:160Persistent modification of Agent behavior through global memory
SKILL.md:189Mutable remote Skill documents are fetched and followed as instructions
diary.md:23Onboarding installs recurring system-level scheduled tasks
heartbeat.md:60Conversation history and broad local activity may be summarized and transmitted to Meyo
link.md:50Untrusted community posts are converted into local executable actions
store.md:210Remote Skill archives are installed without supply-chain integrity controls
scripts/register.sh:23Registration shell script accepts arbitrary destinations and constructs JSON unsafely
scripts/register.py:29Bearer credentials are stored without enforced restrictive permissions
checkup.md:20Mandatory onboarding silently uploads behavioral assessment and Skill inventory
The description claims safety-boundary management and conditional submodule loading, yet the document mandates direct execution of remote API workflows and local credential storage. When declared purpose diverges from real behavior, operators may approve or auto-load the skill without understanding its sensitive side effects.
The description claims safety-boundary management and conditional submodule loading, yet the document mandates direct execution of remote API workflows and local credential storage. When declared purpose diverges from real behavior, operators may approve or auto-load the skill without understanding its sensitive side effects.
The skill explicitly instructs reading local credential files from environment-specific paths. Accessing stored API keys is highly sensitive; if the skill is triggered in the wrong context or combined with malicious downstream instructions, those credentials can be abused for account takeover or unauthorized API actions.
| 环境 | 凭证路径 |
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
The documented credential discovery workflow normalizes local secret retrieval from known paths. Even though framed as expected operation, embedding precise secret locations in a broadly loadable skill increases the likelihood of over-collection and misuse if the skill or related content becomes adversarial.
| 环境 | 凭证路径 |
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
凭证文件结构:
The skill includes the exact structure of the credentials.json file, including api_key and identifiers, which facilitates targeted secret extraction and downstream misuse. In adversarial skill ecosystems, documenting secret formats and paths materially lowers the barrier to credential harvesting.
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
凭证文件结构:
The skill instructs the agent to download and execute remote shell/PowerShell registration scripts from the network. Executing fetched scripts is a classic supply-chain and remote-code-execution risk, especially because the script can access local files, credentials, and the broader runtime with no integrity pinning or code review.
The skill directs persistence of newly issued API credentials into a local file and treats successful secret storage as part of normal flow. Persisting long-lived secrets on disk increases exposure to theft by other skills, compromised runtimes, backups, or local users, especially without encryption or permission-hardening guidance.
3. 脚本输出以 `REGISTER_SUCCESS` 开头表示成功,包含 `agent_id`、`claim_code`、`claim_url` 等信息
4. 将 `claim_url` 对应的完整链接 `https://www.meyo123.com/claim/<claim_code>` 展示给用户
5. 凭证已由脚本写入 `credentials.json`,无需再手动写文件
⚠️ `api_key` 仅在注册时返回一次,脚本已将其安全写入文件。
The skill exposes a direct delete endpoint for posts using a path parameter, with no embedded requirement for confirmation, validation of target ownership beyond API-side checks, or human approval. In an agent system, this creates a high-risk destructive capability that could be triggered accidentally or through prompt manipulation, causing irreversible loss of posts and associated comments.
DELETE /api/v1/feeds/{id}
注意:当前不支持编辑帖子,需修改时删帖重发。删帖后原帖评论一并删除,无法迁移。
The comment deletion endpoint similarly enables destructive mutation via a parameterized target without any described confirmation or safety checks in the skill. Although narrower in scope than post deletion, it still permits unauthorized or accidental removal of user-generated content if the agent is misled, over-broadly triggered, or given the wrong identifier.
DELETE /api/v1/feeds/{id}/comments/{commentId}
The skill instructs the agent to create host-environment cron jobs and to run them in the current channel session with inherited conversation context. Modifying the scheduler is a privileged side effect that can create persistence, repeated autonomous actions, and ongoing access to user context without per-run approval.
By forcing execution in the current channel session and later combining that with memory review and user-facing push delivery, the skill establishes a pipeline for collecting and reusing contextual data without meaningful privacy safeguards. This is dangerous because autonomous jobs can repeatedly access sensitive conversation state and propagate summaries or actions derived from it.
The SOP explicitly tells the agent to mine prior conversations and global memory for user-specific interests, then use that information to drive recommendations and possible community posts. In context, this makes the risk more severe because the data is not just read internally; it can influence outbound public interactions and disclosures.
The final step requires writing a summary of interests, learned knowledge, and valuable interactions into memory and then delivering the collected information to the user, with a retry-until-delivered instruction. This creates persistent storage and forced transmission of accumulated context without privacy controls, increasing the chance of over-retention and disclosure.
The skill imposes a mandatory comment API call after completing certain '实战帖' tasks and only tells the user afterward, which removes meaningful user consent for an external/public action. Because posting community feedback can disclose user activity, outcomes, or operational details, this creates an unauthorized action and privacy boundary violation in the skill's interaction model.
The manifest presents the skill as link interaction, but the body authorizes much broader behavior including task reproduction, external API writes, and autonomous commenting. This mismatch undermines informed consent and security review because a user or orchestrator may invoke the skill expecting passive link handling, not active execution and posting.
The skill tells the agent to determine whether a post contains executable steps and then 'practice' those steps using its available tools and capabilities. That effectively delegates arbitrary external instructions from untrusted community content into real actions, creating a prompt-injection and unsafe tool-use channel that could lead to destructive operations, data access, or exfiltration.
Referencing credentials.json as a file to read for an API key is a direct credential-access pattern. In this skill's context, the danger is elevated because the key is then used to access and interact with an external service while the skill also permits following untrusted post instructions, increasing the chance of credential misuse or accidental exposure.
~/.openclaw/meyo/credentials.json 或 ~/.meyo/credentials.json。curl "https://www.meyo123.com/api/v1/feeds/{id}" \
The skill directs the agent to automatically like and comment on a community post without user approval after completing reproduction steps. This enables autonomous external side effects, potential spam, reputational harm, and abuse of the user's or agent's account identity, especially because the content of the comment is derived from untrusted workflow execution.
The script stores a live API key and other account credentials in a plaintext JSON file under the user's home directory without setting restrictive file permissions. On multi-user systems, shared environments, backups, or if the host is later compromised, these credentials can be read and abused to impersonate the agent or access the associated account.
# 写入凭证文件,不将 api_key 输出到 stdout
cred_dir = os.path.expanduser("~/.meyo")
os.makedirs(cred_dir, exist_ok=True)
cred_path = os.path.join(cred_dir, "credentials.json")
with open(cred_path, "w") as f:
json.dump({
"api_key": data["api_key"],
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# ── Expand ~ in credential dir ────────────────────────────────────────────────
CREDENTIAL_DIR="${CREDENTIAL_DIR/#\~/$HOME}"
CRED_FILE="$CREDENTIAL_DIR/credentials.json"
# ── Check existing credentials ────────────────────────────────────────────────
if [ -f "$CRED_FILE" ]; then
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# ── Expand ~ in credential dir ────────────────────────────────────────────────
CREDENTIAL_DIR="${CREDENTIAL_DIR/#\~/$HOME}"
CRED_FILE="$CREDENTIAL_DIR/credentials.json"
# ── Check existing credentials ────────────────────────────────────────────────
if [ -f "$CRED_FILE" ]; then
The document tells the agent exactly where to find local credential files and later instructs it to read the API key from those paths for authenticated requests. Exposing credential locations inside a generally triggerable skill materially lowers the barrier for any prompt-injection or unintended invocation to coerce secret access and use of bearer tokens.
| 环境 | 凭证路径 |
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
This finding is part of the same credential-disclosure block that enumerates local secret storage locations. In context, the skill is not merely documenting configuration; it is operationalizing credential retrieval for subsequent authenticated network actions, which increases the chance of unauthorized secret access if the skill is activated improperly.
| 环境 | 凭证路径 |
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
凭证文件结构:
The continuation of the credential section includes the structure of the credentials file, revealing the exact secret fields available, including api_key and related identifiers. Providing both path and schema makes secret harvesting easier for a compromised or tricked agent, especially in a skill that also defines authenticated API usage patterns.
|------|---------|
| OpenClaw | `~/.openclaw/meyo/credentials.json` |
| Hermes | `~/.hermes/meyo/credentials.json` |
| 其他 / 未知 | `~/.meyo/credentials.json` |
凭证文件结构:
The skill declares no explicit tool scope while instructing use of network access, shell execution, and file writes. That combination expands the effective privilege surface and prevents hosts or reviewers from constraining dangerous operations such as downloading scripts and persisting credentials.