T05 · Unauthorized Access and Privilege Escalation
- Location
tools/adapt-profiles/openclaw.yaml:71- Finding
OpenClaw Profile Authorizes Extension Installation and Updates Outside the Skill's Required Scope
- Content
View full analysis
Vulnerability Details
File Location:
tools/adapt-profiles/openclaw.yaml:71-82
Related Location:tools/adapt-profiles/openclaw.yaml:24-30
Vulnerability Type: Excessive runtime-modification privileges
Risk Level: MediumVulnerable Code
yaml immutable_dirs: - .openclaw/agents - .openclaw/cron - .openclaw/credentials - .openclaw/identity - .openclaw/logs - .openclaw/extensionsyaml extensions_policy: allowed: - install_new_extension - update_extension requires_confirmation: - delete_extension - rename_extension - disable_extension forbidden: - modify_extension_codeTechnical Analysis
The profile marks
.openclaw/extensionsas immutable but separately authorizes installing and updating extensions. The confirmation list applies only to deletion, renaming, and disabling, meaning installation and update operations are treated as permitted without a corresponding explicit-confirmation requirement.Installing or updating an extension changes executable runtime content rather than merely organizing workspace files. This exceeds the minimum privileges required for the Skill's declared functions of workspace inspection, organization, cleanup, archiving, and hygiene auditing.
The policy also conflicts with the mandatory baseline in
SKILL.md, which states that agent and runtime configuration directories must not be touched without explicit user approval. No script in the repository directly performs an extension installation, so exploitation depends on a consuming agent interpreting this profile as operational authorization.Attack Path
- The Skill is loaded in an OpenClaw environment.
- The agent loads
tools/adapt-profiles/openclaw.yamlas the platform overlay. - A governance task encounters an extension-related directory or is expanded to include runtime maintenance.
- The agent interprets `inst ...[truncated 1201 chars]
- Remediation
View remediation
Remediation Suggestions
- Move
install_new_extensionandupdate_extensionintorequires_confirmation. - Require a separate, explicit extension-management intent rather than inferring authorization from a workspace-governance request.
- Preserve
.openclaw/extensionsas immutable during ordinary organize, archive, cleanup, and audit modes. - Require trusted and allowlisted extension sources.
- Pin extension identifiers and versions and verify package integrity before installation.
- Display the source, version, requested permissions, affected paths, and rollback procedure before approval.
- Block all extension changes in non-interactive environments.
- Add a contract test that rejects profiles permitting runtime installation or updates without explicit confirmation.
A safer policy would be:
yaml extensions_policy: allowed: [] requires_confirmation: - install_new_extension - update_extension - delete_extension - rename_extension - disable_extension forbidden: - modify_extension_code- Move
