Back to skill

Security audit

Smart Auto Updater Litiao

Security checks for vulnerabilities and agentic risk

Overview

This updater is purpose-aligned, but it deserves Review because it can automatically modify OpenClaw and installed skills while its documented risk gate and automation guidance are under-scoped.

Install only if you are comfortable with a skill that can change your OpenClaw and installed skills. Prefer report-only mode, avoid automatic MEDIUM updates, manually review changelogs before applying updates, do not add cron jobs until you want recurring unattended behavior, set your own timezone, and use webhooks only with approved endpoints that can receive operational update details.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
references/risk-assessment.md:25
Finding

HIGH Risk Classification Is Mathematically Unreachable

Content
View full analysis
3.5 ``` ### Technical Analysis Each assessment dimension is assigned a value from 1 through 3. Because the four weights sum to 1.0, the maximum possible result is: ```text (3 × 0.4) + (3 × 0.2) + (3 × 0.3) + (3 × 0.1) = 3.0 ``` The `HIGH` classification requires a score greater than 3.5 and therefore cannot be produced. Even an update receiving the maximum score in every dimension is classified as `MEDIUM`. This contradicts the documented security model, under which dangerous updates are supposed to be skipped as `HIGH`. The problem becomes security-critical because the configuration permits automatic installation of `MEDIUM` updates. A configuration example in `references/integration.md` explicitly describes `SMART_UPDATER_AUTO_UPDATE="MEDIUM"` as allowing automatic updates for both LOW and MEDIUM risk. ### Attack Path 1. An attacker publishes or compromises an OpenClaw or Skill update. 2. The update contains breaking, security-sensitive, or malicious changes. 3. The risk assessment assigns the maximum value of 3 to every dimension. 4. The weighted result is 3.0. 5. The unreachable `HIGH > 3.5` threshold causes the update to be classified as `MEDIUM`. 6. If the user has enabled automatic MEDIUM-risk updates, the updater accepts and installs the update. 7. Code contained in the installed update may subsequently execute with the privileges available to OpenClaw or the affected Skill. ### Impact Assessment The flaw can bypass the intended mandatory-review path for the most dangerou ...[truncated 743 chars]
Remediation
View remediation
2.4 ``` 2. Alternatively, normalize the weighted score to a larger range before applying the current thresholds. 3. Add deterministic overrides that always require manual approval when an update includes: - Executable or installation-script changes. - Authentication or authorization changes. - Dependency-source changes. - Database migrations. - Breaking API changes. - Security-sensitive configuration changes. 4. Do not permit automatic installation of security-critical updates solely because an aggregate score is below a threshold. 5. Add automated boundary tests covering: - Minimum possible score. - Every threshold boundary. - Maximum possible score. - Maximum values in all dimensions. - Security-critical updates with otherwise low scores. 6. Fail closed if scoring is incomplete, malformed, contradictory, or outside the expected range. 7. Require explicit manual approval for MEDIUM and HIGH updates in production environments. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
references/risk-assessment.md:104
Finding

Untrusted Changelog Content Is Directly Inserted into an Update-Decision Prompt

Content
View full analysis
Remediation
View remediation
... ``` 3. Encode or serialize update data in a structured format rather than concatenating it into free-form instructions. 4. Require schema-constrained model output containing validated numeric scores, evidence, and confidence values. 5. Reject model output that: - Contains unexpected fields or free-form commands. - Uses values outside the permitted ranges. - Omits evidence for a classification. - Conflicts with deterministic security checks. 6. Supplement LLM analysis with deterministic checks for executable changes, dependency modifications, install scripts, permission changes, authentication changes, migrations, and security-sensitive files. 7. Never allow the LLM assessment to be the sole authorization control for installing an update. 8. Require manual approval for updates involving executable code, dependencies, security controls, installation hooks, or low-confidence analysis. 9. Verify update signatures, publisher identity, package integrity, and trusted source metadata before installation. 10. Run update analysis and installation with separate least-privilege identities, and provide rollback or transactional installation controls. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description prominently advertises automatic updating and 'safety guarantees' without clearly warning that the skill may modify installed software or skills. In an auto-updater context, understated disclosure is dangerous because users may invoke it expecting a passive check/report, while the documented LOW-risk path explicitly performs updates.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The quick-start commands tell users to 'Run smart update check' but do not warn that execution may trigger automatic updates depending on risk classification and environment settings. This is risky because a user may treat the example as read-only discovery, yet the skill's documented behavior allows immediate system modification for LOW-risk updates.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The integration guide schedules automatic update checks and explicitly references auto-updating on a recurring basis, but it does not prominently warn that this may apply system changes without per-run human review. In a maintenance skill, this increases the chance of unintended changes, outages, or unsafe updates being adopted through routine automation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The cron examples specify '--tz "Asia/Shanghai"', and the environment configuration also sets 'SMART_UPDATER_TZ="Asia/Shanghai"'. This imposes a specific locale setting in natural-language guidance without opt-in or explanation, which matches the language/locale policy violation criteria.

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 · references/integration.md (reported line 51)May include surrounding context.

Complete Configuration File

Create ~/.config/smart-auto-updater.env:

bash
# AI Model

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The configuration example sets 'SMART_UPDATER_TZ="Asia/Shanghai"' as the default timezone. Because this file is general integration guidance rather than a region-specific document, forcing a specific locale without opt-in constitutes a natural-language locale policy issue.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The webhook examples send update reports to third-party services but do not warn that report contents may include package names, versions, system metadata, or operational details. This can lead to unintentional disclosure of sensitive environment information to external platforms or misconfigured endpoints.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The skill documentation is primarily in English but injects Chinese terms in the impact assessment description '(架构/性能/兼容性)' without indicating a user-selectable language or a justified locale-specific scope. This can be interpreted as an implicit language policy inconsistency under the rule for language or locale policy violations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The Feishu section provides output entirely in Chinese, while the rest of the file is in English, and there is no accompanying text indicating that language selection is user-configurable or based on user preference. This can violate the language/locale policy because it forces a specific language for one channel without documented opt-in or justification.

Content

No source excerpt is available for this finding.