Back to skill

Security audit

Heleni Maintenance

Security checks for vulnerabilities and agentic risk

Overview

This maintenance skill performs real backup and update tasks, but it also enables silent recurring workspace uploads, raw credential inspection, broad self-updates, and direct session-store edits.

Install only if you are comfortable with a skill that can create recurring cron jobs, push the entire workspace to GitHub, inspect GitHub tokens, update OpenClaw and all skills, and edit agent session state. Before use, require explicit per-action approval, remove silent backup behavior, avoid printing tokens, use a file allowlist and secret scanning, pin update sources, and separate session cleanup into a clearly disclosed maintenance task.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (4)

T06 · System Persistence

Error
Location
SKILL.md:53
Finding

Persistent Silent Transmission of Unrestricted Workspace Contents

Content
View full analysis
/dev/null || echo "Nothing to commit" # Push git push origin main ``` ```bash openclaw cron add \ --name "workspace-backup" \ --every 6h \ --session isolated \ --message "Run the maintenance skill, Section 1 (Workspace Backup). cd /opt/ocana/openclaw/workspace && git add -A && git commit -m 'Auto-backup: $(date -u +\"%Y-%m-%d %H:%M UTC\")' && git push origin main. Silent — do not message owner unless push fails." \ --timeout-seconds 60 ``` ### Technical Analysis `git add -A` recursively stages all tracked, modified, deleted, and untracked files within the repository. The skill defines no file allowlist, secret exclusion policy, remote ownership verification, pre-commit inspection, or secret scanning step. The scheduled task survives the session that creates it and repeatedly performs the push. Its instruction to remain silent reduces the likelihood that the owner will notice unexpected commits or transmissions. Although the destination is the configured `origin` remote and is not necessarily attacker-controlled, the skill does not verify that the remote is authorized or private. ### Attack Path 1. A user invokes the maintenance skill or installs the documented backup cron task. 2. The cron task persists and runs every six hours in an isolated session. 3. Credentials, private memory, configuration files, logs, or other sensitive material are subsequently created inside the workspace. 4. ...[truncated 747 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:29
Finding

Raw GitHub Credentials Are Read and Printed into Command Output

Content
View full analysis
/dev/null cat ~/.credentials/github-pat.txt 2>/dev/null ``` ### Technical Analysis Printing environment variables with `echo` and reading token files with `cat` places their complete values in command output. That output may be captured by Agent context, terminal history, orchestration logs, debugging systems, or session transcripts. Similarly, `git remote get-url origin` may reveal a token when credentials are embedded in an HTTPS remote URL. A normal authenticated Git operation does not require the Agent to obtain or display the underlying secret; authentication should instead be delegated to a credential helper or secret broker. ### Attack Path 1. A backup operation triggers the token-discovery procedure. 2. The Agent executes `remote get-url`, `echo`, or `cat`. 3. A GitHub token is emitted as plaintext in command output. 4. The output is retained in an Agent session, execution log, transcript, or monitoring system. 5. Any party or component with access to that output can recover the token. 6. The exposed token can then be used against repositories and organizations permitted by its scopes until it expires or is revoked. ### Impact Assessment An exposed personal access token can grant repository read or write privileges, depending on its configured scopes. Possible consequences include unauthorized source-code access, malicious commits, release manipulation, workflow changes, or disclosure of private repository data. The exact scope depends on the token, but the docume ...[truncated 98 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
SKILL.md:103
Finding

Unpinned Remote Software and Skill Updates Create a Supply-Chain Execution Path

Content
View full analysis
``` ```bash clawhub update ``` ```bash npm install -g clawhub ``` ### Technical Analysis The commands retrieve mutable releases without specifying an exact version, expected checksum, trusted publisher identity, or cryptographic signature. `clawhub update` applies this risk to every installed skill, increasing the number of upstream components capable of introducing executable instructions or code. The fallback `npm install -g clawhub` modifies a system-wide package installation and executes npm package lifecycle behavior under the invoking account's privileges. No review, sandbox, integrity verification, or staged deployment is required before the resulting code is used. ### Attack Path 1. The weekly cron task or a manual maintenance request invokes the update procedure. 2. The updater resolves the latest available OpenClaw, ClawHub, or skill release. 3. An upstream package, publisher account, registry entry, update channel, or release artifact has been compromised. 4. Because no version or verified digest is required, the compromised release is accepted. 5. The package or updated skill is installed. 6. Its code, lifecycle scripts, or instructions execute with the permissions available to the maintenance process. 7. A malicious update can then access workspace data, alter Agent behavior, modify local files, or establish additional persistence. ### Impact Assessment A compr ...[truncated 408 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:170
Finding

Undeclared and Unsafe Rewriting of the Live Agent Session Store

Content
View full analysis
Remediation
View remediation
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (12)

Self-Modification

High
Category
Rogue Agent
Confidence
92% confidence
Finding

The manifest advertises updating OpenClaw and skills, which is a self-modification capability. Even if intended for maintenance, self-updating code and skills can change the agent's behavior, introduce malicious upstream changes, or break security assumptions if done automatically or without review.

Content

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

md
---
name: workspace-maintenance
description: "Unified workspace maintenance skill. Covers: (1) backing up the workspace to GitHub git repo, and (2) updating OpenClaw and skills. Use when: asked to backup, push to git, update openclaw, update skills, or run maintenance."
---

# Maintenance Skill

Self-Modification

High
Category
Rogue Agent
Confidence
93% confidence
Finding

The trigger phrase allows self-modifying actions through generic update requests and broad maintenance wording. In context, this makes it easier to invoke software and skill changes without a clearly bounded intent or change-review process.

Content

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

md
## Trigger Phrases
- "backup workspace" / "push to git" / "save to github"
- "update openclaw" / "update skills" / "run maintenance"
- Runs automatically on schedule (see Cron section)

---

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The backup section silently stages and pushes the entire workspace to GitHub every 6 hours, but the user-facing description does not clearly warn that all files may be transmitted off-host automatically. This lack of informed consent is dangerous because the workspace may contain secrets, personal data, or proprietary materials.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
100% confidence
Finding

This section directs automatic collection and transmission of the entire workspace to GitHub on a silent recurring schedule. In context, that creates a durable exfiltration channel for any secrets, user data, source code, or other sensitive artifacts present in the workspace.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The token discovery steps are explicit instructions to enumerate credentials from multiple secret-bearing locations in order to enable remote transmission. That combination of secret access plus network publishing materially increases the risk of credential abuse and data leakage.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
100% confidence
Finding

The cron message schedules silent recurring publication of all staged workspace changes to GitHub and explicitly suppresses notifying the owner unless push fails. Silent autonomous export is especially dangerous because it removes human oversight while continuously transmitting potentially sensitive data.

Content

No source excerpt is available for this finding.

Self-Modification

High
Category
Rogue Agent
Confidence
94% confidence
Finding

This section explicitly tells the skill to run OpenClaw and skill updates on a schedule and on user request. Scheduled self-modification is risky because new versions may alter capabilities, introduce vulnerabilities, or disrupt service without prior validation.

Content

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

md
### When to Run
- Weekly on Sunday at 03:00 UTC (cron)
- When owner says "update openclaw" or "update skills"
- After a new OpenClaw version is released

### Step 1 — Update OpenClaw

Self-Modification

High
Category
Rogue Agent
Confidence
95% confidence
Finding

Updating all installed skills from ClawHub is direct self-modification of the agent's executable instruction set. This is dangerous because a compromised or unreviewed skill update can immediately change behavior, expand access, or introduce malicious logic.

Content

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

openclaw --version

text

### Step 2 — Update Skills via ClawHub

```bash
# Update all installed skills to latest

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase 'run maintenance' is broad and likely to match ordinary user requests that do not imply consent to push all workspace contents, modify installed software, or restart services. Overbroad activation increases the chance of unintended execution of sensitive actions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly instructs the agent to read GitHub credentials from remotes, environment variables, and local credential files. Accessing secrets is highly sensitive and unnecessary in this form because it normalizes credential harvesting behavior and expands the blast radius if the skill is misused or compromised.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill tells the agent to inspect remotes, environment variables, and credential files for GitHub tokens without a corresponding user-facing warning about credential access. Hidden secret-access behavior is dangerous because users may not realize the skill is authorized to read sensitive authentication material.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest and description say the skill handles backup and updates, but the body also performs session store cleanup and gateway restarts. That hidden extra capability increases operational risk because users may invoke the skill without realizing it can delete state-like data and restart services, which can affect availability and forensic records.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.