soul-self-evolution

Warn

Audited by Gen Agent Trust Hub on Oct 17, 2026

Risk Level: MEDIUMINDIRECT_PROMPT_INJECTIONDATA_EXFILTRATIONCOMMAND_EXECUTIONDYNAMIC_EXECUTION
Full Analysis
  • [INDIRECT_PROMPT_INJECTION]: The skill implements a self-modification loop where the agent's core instructions are updated based on external observations, creating a surface for instruction injection.
  • Ingestion points: The observations parameter in the propose function and the changes list in the apply function process external data.
  • Boundary markers: None; content is interpolated directly into markdown files without delimiters or warnings to ignore embedded instructions.
  • Capability inventory: The skill utilizes the write_file tool to commit changes to the repository's configuration files.
  • Sanitization: No validation or filtering is performed on the incoming content to prevent the inclusion of malicious or overriding instructions.
  • Safety Bypass: The immutable_sections list, intended to protect safety guardrails, is passed as a tool argument, meaning an agent could be manipulated into overriding its own protection by passing an empty or modified list.
  • [DATA_EXFILTRATION]: The rollback mechanism allows for arbitrary file read access, which could be used to expose sensitive system data.
  • Evidence: In run.py, the rollback function accepts an absolute path for the checkpoint argument. The code reads the content of the provided path using checkpoint_path.read_text() without verifying that the path resides within the intended checkpoint directory, allowing any file accessible to the process to be read and then written into a public repository file named SOUL.md.
  • [COMMAND_EXECUTION]: The skill performs standard file system operations to manage configuration files and historical state.
  • Evidence: The apply and rollback handlers in run.py use path.write_text and path.read_text to modify repository files, and _checkpoint_dir uses mkdir to create local storage directories.
  • [DYNAMIC_EXECUTION]: The skill's test suite utilizes dynamic module loading for its execution flow.
  • Evidence: tests/test_soul_self_evolution.py uses importlib.util to load and execute the run.py script as a module during testing.
Audit Metadata
Risk Level
MEDIUM
Analyzed
Oct 17, 2026, 05:29 AM