Back to skill

Security audit

Protea Self Evolving Life Agent

Security checks for vulnerabilities and agentic risk

Overview

The skill describes a self-changing AI program and tells users to run an unverified remote installer, so it needs Review before installation.

Install only if you are comfortable running a self-modifying AI project with LLM API keys and local persistence. Do not use the one-line curl-to-bash command; review or pin the installer first, run it as an unprivileged user in a disposable directory or container, and avoid exposing sensitive credentials beyond what the project strictly needs.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:30
Finding
Unverified Remote Installation Script Executed Directly by Bash## Vulnerability Details **File Location**: `SKILL.md:30` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High **Complete Code Snippet**: ```bash curl -sSL https://raw.githubusercontent.com/EdisonChenAI/protea/main/setup.sh | bash cd protea && .venv/bin/python run.py ``` ### Technical Analysis The documented installation procedure downloads `setup.sh` from the mutable `main` branch of a personal GitHub repository and pipes its response directly into Bash. The project contains no local copy of that script, pinned commit identifier, cryptographic checksum, or signature. Consequently, the effective code executed by users can change after this Skill has been audited. Direct piping also prevents a normal review step before execution. HTTPS protects transport under ordinary conditions, but it does not establish that the repository owner, account, branch, or current script content is trustworthy. The declared Python application may legitimately require installation, but arbitrary unverified shell execution is not the minimum capability necessary to provide it. ### Attack Path 1. An attacker controls or compromises the referenced repository, GitHub account, or mutable `main` branch. 2. The attacker modifies `setup.sh` to contain malicious shell commands. 3. A user follows the Quick Start instructions. 4. `curl` retrieves the current attacker-controlled response. 5. The shell executes that response immediately with the privileges of the invoking user. 6. The payload may access user-readable data, API credentials, and network resources, modify files, or retrieve and execute additional payloads. ### Impact Assessment Successful exploitation provides arbitrary command execution with the invoking user's privileges. This can expose files and credentials available to that account—including LLM API keys configured for the declared application—and permit modification of user-owned files or ins ...[truncated 332 chars]
Remediation
## Remediation Suggestions 1. Remove the `curl | bash` installation flow. 2. Include the installer in the reviewed project so its complete behavior is available during audit. 3. If remote distribution is unavoidable, reference an immutable, reviewed release artifact or commit rather than a mutable branch. 4. Publish and verify a cryptographic signature or an independently distributed SHA-256 digest before execution. 5. Download the installer to a local file, fail on HTTP errors, verify it, and allow inspection before running it. For example: ```bash curl --fail --show-error --location \ --output setup.sh \ "https://raw.githubusercontent.com/EdisonChenAI/protea/<immutable-commit>/setup.sh" printf '%s %s\n' '<reviewed-sha256>' setup.sh | sha256sum --check - less setup.sh bash setup.sh ``` 6. Document all files, dependencies, network operations, and configuration changes performed by the installer. 7. Ensure installation runs without root privileges and request explicit approval for any operation outside the application directory. 8. Avoid placing credentials in installer arguments, logs, or shell history, and restrict credential-file permissions.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (4)

Self-Modification

High
Category
Rogue Agent
Content
description: >
  Self-evolving artificial life agent. Three-ring architecture: Ring 0 (Sentinel) supervises,
  Ring 1 (Intelligence) drives LLM-powered evolution, Ring 2 (Evolvable Code) is the living program
  that self-restructures, self-reproduces, and self-evolves. Supports Anthropic, OpenAI, DeepSeek,
  and Qwen as LLM providers. Includes fitness scoring, gene pool inheritance, tiered memory,
  skill crystallization, Telegram bot, and web dashboard.
---
Confidence
90% confidence
Finding
The skill explicitly advertises self-restructuring, self-reproduction, and self-evolution, which indicates autonomous code modification behavior. Even if this is the intended product function, it materially raises security risk because an LLM-driven system that rewrites and propagates code can amplify prompt injection, unsafe code generation, persistence, or runaway behavior if guardrails fail.

Chaining Abuse

High
Category
Tool Misuse
Content
## Quick Start

```bash
curl -sSL https://raw.githubusercontent.com/EdisonChenAI/protea/main/setup.sh | bash
cd protea && .venv/bin/python run.py
```
Confidence
99% confidence
Finding
Piping downloaded content directly into bash removes any opportunity for review and turns a network fetch into immediate command execution. This pattern is broadly unsafe, and in the context of a self-evolving agent that already expects elevated automation and code mutation, the blast radius of a compromised installer is even greater.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The quick-start instruction downloads a remote shell script and executes it immediately via a shell pipeline, giving the fetched content full code-execution privileges on the user's machine without inspection or integrity verification. In a skill centered on self-evolution and code mutation, this is especially dangerous because users are primed to run powerful automation, increasing the likelihood of unintended compromise if the remote content or distribution path is tampered with.

External Script Fetching

Low
Category
Supply Chain
Content
## Quick Start

```bash
curl -sSL https://raw.githubusercontent.com/EdisonChenAI/protea/main/setup.sh | bash
cd protea && .venv/bin/python run.py
```
Confidence
97% confidence
Finding
The skill fetches an external script from a remote URL at runtime, creating a trust dependency on the repository, branch state, transport path, and hosting account. If that source is changed, compromised, or replaced, users will retrieve attacker-controlled code, and the surrounding quick-start pattern makes that code likely to be executed immediately.

Static analysis

No suspicious patterns detected.