T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:7- Finding
Unnecessary Persistent-Memory Write Capability
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7-11
Vulnerability Type: Excessive tool permissions
Risk Level: LowEvidence
yaml "openclaw": { "emoji": "📈", "requires": { "tools": ["web_search", "memory_write"] }, "install":Technical Analysis
The skill declares
memory_writeas a required tool even though its documented purpose is limited to searching for current Hong Kong technology-sector information and generating a pre-market brief. No documented command, parameter, workflow, or output requirement uses persistent memory.Granting a persistent write capability that is not necessary for the stated task violates the principle of least privilege. It unnecessarily expands the capability set available while the skill is active. The reviewed file does not explicitly instruct the agent to write data to memory, so there is no evidence of an intentional memory-poisoning operation; the issue is the unjustified permission itself.
Attack Path
- A host registers the skill and grants all tools listed in its
requiresmetadata. - The skill consequently receives access to
memory_write, despite only requiring web search for its documented operation. - If the execution context is subsequently influenced by untrusted web content, malformed input, or another compromised instruction source, that context may attempt to invoke the unnecessarily available memory-writing tool.
- Depending on host-side authorization controls, unwanted content could then be stored in persistent agent memory and affect later sessions.
This path requires an additional mechanism capable of inducing a tool call;
SKILL.mdalone does not contain such an instruction.Impact Assessment
The excessive declaration potentially exposes persistent agent state to unauthorized modification. Successful abuse could store misleading preferences, fabricated facts, or hostile instructions that influ ...[truncated 316 chars]
- A host registers the skill and grants all tools listed in its
- Remediation
View remediation
Remediation Suggestions
Remove
memory_writefrom the required tool list and retain only the capability needed by the documented workflow:yaml "requires": { "tools": ["web_search"] }Additionally:
- Require explicit user approval before granting any persistent-state write capability.
- Enforce per-invocation tool authorization rather than granting every declared capability for the entire skill run.
- Restrict persistent-memory writes to an allowlisted schema and trusted data sources.
- Treat web-search results as untrusted data and prevent retrieved content from authorizing tool calls.
- Add a registration-time validation rule that rejects capabilities not referenced by a skill's documented workflow.
- If persistent storage later becomes a legitimate requirement, document exactly what is stored, when writes occur, the retention period, and how users can inspect or delete stored data.
