T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:26- Finding
Overbroad Access to Private Agent Memory During Diary Generation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:26-31; supporting configuration inINIT.md:15-31andconfig.template.yaml:9-15
Vulnerability Type: Excessive access to private Agent and user memory
Risk Level: MediumVulnerable Code
SKILL.md:26-31:markdown 必读: - `paths.soul_path` - `paths.memory_root_path` - `paths.daily_memory_dir/YYYY-MM-DD.md` 建议读取: - `paths.diary_text_dir` 最近 7 天日记(避免重复句式)INIT.md:15-31:markdown - `soul_path` 候选: 1. `<workspace_dir>/SOUL.md` 2. `~/.openclaw/workspace/SOUL.md` - `memory_root_path` 候选: 1. `<workspace_dir>/MEMORY.md` 2. `~/.openclaw/workspace/MEMORY.md` - `daily_memory_dir` 候选: 1. `~/.openclaw/memory` 2. `<workspace_dir>/memory` - `daily_memory_pattern` 默认:`YYYY-MM-DD.md`config.template.yaml:9-15:yaml paths: soul_path: "~/.openclaw/workspace/SOUL.md" memory_root_path: "~/.openclaw/workspace/MEMORY.md" daily_memory_dir: "~/.openclaw/memory" daily_memory_pattern: "YYYY-MM-DD.md" diary_text_dir: "~/.openclaw/scene/日记/文字" news_summary_dir: "~/.openclaw/scene/每日简报/news/Summary"Technical Analysis
The Skill requires complete identity and memory files to be read on each diary-generation run. The required inputs include
SOUL.md, the rootMEMORY.md, and a daily memory file. The implementation instructions do not define field-level scoping, content filtering, sensitivity classification, or explicit per-run authorization for these sources.These files may contain information unrelated to the requested diary, including private conversation context, personal details, operational instructions, or credentials accidentally stored in memory. Because the Skill subsequently generates Markdown and a shareable image from the collected material, unrelated sensitive information could be incorporated into persistent output.
The risk is compounded by `optional.include_news_co ...[truncated 1942 chars]
- Remediation
View remediation
Remediation Suggestions
- Make access to
SOUL.md, rootMEMORY.md, historical diaries, and news summaries opt-in rather than mandatory. - Request explicit user confirmation before reading broad identity or long-term memory files.
- Restrict default collection to the daily-memory file for the requested date.
- Allow users to select specific files or excerpts instead of reading complete memory stores.
- Apply sensitivity filtering before generation, excluding credentials, access tokens, private instructions, financial information, and unrelated personal data.
- Add an output review or redaction step before writing the Markdown file or rendering the image.
- Set
optional.include_news_contexttofalseby default and minimize historical lookback periods. - Document precisely which files will be read and how their contents may influence generated output.
- Validate configured paths against an approved workspace root to prevent accidental access to unrelated files.
- Consider separating identity/style guidance from private factual memory so stylistic continuity does not require loading the complete memory corpus.
- Make access to
