T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/collect.py:81- Finding
Unrestricted Collection of Conversation Histories Across All Agents
- Content
View full analysis
MAX_CHARS_PER_SESSION: text_parts.append(f"[... truncated at {MAX_CHARS_PER_SESSION} chars ...]") break text_parts.append(chunk) char_count += len(chunk) sessions.append({ "session_id": jsonl_file.stem, "agent": agent_dir.name, "messages": text_parts, "message_count": len(messages), "char_count": char_count, }) ``` ### Technical Analysis The collector defaults to the top-level `~/.openclaw/agents` directory and enumerates every child agent directory. It does not limit collection to the invoking agent, require an explicit agent allowlist, or verify that the caller is authorized to process each agent's history. The extracted user and assistant messages are copied verbatim into a consolidated plaintext extraction file. The implemented noise filter only recognizes a small set of fixed phrases; it does not redact credentials, personal information, access tokens, confidential business data, or other sensitive content. This violates least privilege beca ...[truncated 1262 chars]- Remediation
View remediation
