T09 · Insecure Skill Coding Practices
- Location
scripts/src/engine.py:125- Finding
Raw Agent Memory Is Transmitted to Anthropic Contrary to the Documented Privacy Boundary
- Content
View full analysis
Optional[str]: """Read the daily memory markdown file.""" if target_date is None: target_date = date.today() if memory_dir is None: memory_dir = os.environ.get( 'OPENCLAW_MEMORY_DIR', os.path.join(os.path.expanduser('~'), '.openclaw', 'memory') ) path = Path(memory_dir) / f'{target_date}.md' if path.exists(): return path.read_text(errors='replace') return None ``` ```python # scripts/src/engine.py:125-128 memory_text = read_memory_file( memory_dir=cfg['openclaw']['memory_dir'], target_date=target_date ) or '(no memory file for this date)' ``` ```python # scripts/src/engine.py:162-170 return { 'date': str(target_date), 'log_summary': log_summary, 'langfuse_today': langfuse_summary, 'langfuse_7day': langfuse_week, 'git_activity': git_summary, 'cp_scores': cp_scores, 'cp_trends': cp_trends, 'memory_context': memory_text[:6000], } ``` ```python # scripts/src/engine.py:231-235 user_content = ( f"Analyse this operational data and produce today's reflection:\n\n" f"```json\n{json.dumps(data, indent=2, default=str)}\n```" ) ``` ```python # scripts/src/engine.py:266 reflection = call_claude(system_prompt, user_content, model) ``` ### Technical Analysis The daily pipeline reads up to 6,000 characters from the Agent's daily memory file and inserts the text verbatim into the JSON packet submitted to Anthropic. No local redaction, secret detection, field-level filtering, or user confirmation occurs before transmission. This exceeds the ...[truncated 1627 chars]- Remediation
View remediation
