autolearn
Fail
Audited by Gen Agent Trust Hub on Oct 15, 2026
Risk Level: HIGHCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTIONDATA_EXFILTRATIONDYNAMIC_EXECUTION
Full Analysis
- [COMMAND_EXECUTION]: The script
scripts/falsify.pyexecutes shell commands extracted from the YAML frontmatter ofSKILL.mdfiles usingsubprocess.run(shell=True). Although it applies a safety filter (_is_safe_declared) that denies certain keywords (such assudo,curl, andrm), the execution of externally-defined strings in a shell environment remains a significant security risk due to potential filter bypass techniques. - [INDIRECT_PROMPT_INJECTION]: The skill is inherently susceptible to indirect prompt injection as it autonomously ingests and 'learns' from untrusted conversation history to update behavioral rules and persistent memories.
- Ingestion points: Conversation messages are read from
opencode.dbandsearch.dbbyscripts/outcomes.py,scripts/proposer.py, andscripts/shift.py. - Boundary markers: Learned lessons and rules are stored in
memories.jsonlandrules.yamland later rendered into the agent's context (e.g., inmemory.context.md) without explicit security delimiters or instructions to ignore embedded malicious content. - Capability inventory: The skill has the ability to execute shell commands (via
falsify.py) and perform network requests (viaautolearn.py). - Sanitization: There is no sanitization or validation of the 'learned' content beyond basic slugification for identification; the system treats user corrections and preferences as authoritative instructions.
- [DATA_EXFILTRATION]: The synchronization feature in
scripts/autolearn.pyuses therequestslibrary to push the contents of the local knowledge store (includingmemories.jsonlanduser-profile.md) to a remote server. While the implementation inscripts/sync_crypto.pyuses end-to-end encryption (AES-256-GCM), the capability to send sensitive user profile data to an external URL constitutes a managed data exfiltration vector. - [DYNAMIC_EXECUTION]: Several scripts utilize dynamic execution or loading patterns.
scripts/falsify.pyandscripts/test_sync_e2e.pyusesubprocessfunctions to run tests and local services.scripts/shift.pyandscripts/test_repair_skill_use_counts.pyemploy__import__for dynamic module loading. Additionally,scripts/shift.pyusesre.compile()for processing candidate utterances.
Recommendations
- HIGH: Downloads and executes remote code from: unknown (check file) - DO NOT USE without thorough review
Audit Metadata