T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:70- Finding
Arbitrary Remote OpenProse Programs Are Retrieved and Executed Without a Trust Boundary
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a high-authority workflow runner that can execute remote programs, create persistent agent memory, and expose database credentials without enough guardrails.
Install only if you intend to run OpenProse as a powerful workflow execution environment. Treat .prose files like code, avoid running remote programs unless you trust and review them, do not use production databases or real secrets, prefer local filesystem state, and review or disable project/user/custom persistence before use.
SKILL.md:70Arbitrary Remote OpenProse Programs Are Retrieved and Executed Without a Trust Boundary
guidance/system-prompt.md:6Bundled System-Prompt Enforcement Overrides Session Goals and Delegates Authority to Program Text
prose.md:447Untrusted Programs Can Establish Cross-Project Memory or Write Persistent State to Custom Paths
state/postgres.md:60PostgreSQL Connection Credentials Are Intentionally Exposed to Arbitrary Subagents
state/postgres.md:136Recommended PostgreSQL Docker Configuration Publishes a Trust-Authenticated Database Port
state/postgres.md:461Generated Prompts and Outputs Are Embedded into Command-Line SQL Without a Safe Parameterization Protocol
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
ailed system description, they don't just describe it, they _simulate_ it. The `prose.md` specification describes a virtual machine with enough fidelity that a
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
Referenced artifact was not completely inspected
| `prose compile <file>` | Load `compiler.md`, validate the program |
The skill explicitly supports fetching and executing remote .prose programs from arbitrary URLs or shorthand registries, but it does not require a trust warning, provenance check, sandboxing guidance, or explicit user confirmation. Because this skill's purpose is to orchestrate multi-agent workflows and file/network actions, executing untrusted remote content materially increases the risk of prompt injection, data exfiltration, or unsafe workspace operations.
The instructions direct the agent to inspect .prose/.env and environment variables for OPENPROSE_POSTGRES_URL, which commonly contains embedded database credentials. In a skill that may pass context to subagents and expose logs, reading or echoing secrets increases the chance of credential disclosure through outputs, traces, or downstream tool invocations.
# Check .prose/.env for OPENPROSE_POSTGRES_URL
cat .prose/.env 2>/dev/null | grep OPENPROSE_POSTGRES_URL
# Or check environment variable
echo $OPENPROSE_POSTGRES_URL
The example echo $OPENPROSE_POSTGRES_URL explicitly outputs the full connection string, which may include username, password, host, and database details. Exposing secrets directly in terminal output or logs is a classic credential leakage path and is especially risky in agent frameworks that retain transcripts or share context with spawned sessions.
# Check .prose/.env for OPENPROSE_POSTGRES_URL
cat .prose/.env 2>/dev/null | grep OPENPROSE_POSTGRES_URL
# Or check environment variable
echo $OPENPROSE_POSTGRES_URL
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
1. Set up a PostgreSQL database (Docker, local, or cloud)
2. Add connection string to .prose/.env:
echo "OPENPROSE_POSTGRES_URL=postgresql://user:pass@localhost:5432/prose" >> .prose/.env
Quick Docker setup:
docker run -d --name prose-pg -e POSTGRES_DB=prose -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:16
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
1. Set up a PostgreSQL database (Docker, local, or cloud)
2. Add connection string to .prose/.env:
echo "OPENPROSE_POSTGRES_URL=postgresql://user:pass@localhost:5432/prose" >> .prose/.env
Quick Docker setup:
docker run -d --name prose-pg -e POSTGRES_DB=prose -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:16
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
1. Set up a PostgreSQL database (Docker, local, or cloud)
2. Add connection string to .prose/.env:
echo "OPENPROSE_POSTGRES_URL=postgresql://user:pass@localhost:5432/prose" >> .prose/.env
Quick Docker setup:
docker run -d --name prose-pg -e POSTGRES_DB=prose -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:16
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
1. Set up a PostgreSQL database (Docker, local, or cloud)
2. Add connection string to .prose/.env:
echo "OPENPROSE_POSTGRES_URL=postgresql://user:pass@localhost:5432/prose" >> .prose/.env
Quick Docker setup:
docker run -d --name prose-pg -e POSTGRES_DB=prose -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:16
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
1. Set up a PostgreSQL database (Docker, local, or cloud)
2. Add connection string to .prose/.env:
echo "OPENPROSE_POSTGRES_URL=postgresql://user:pass@localhost:5432/prose" >> .prose/.env
Quick Docker setup:
docker run -d --name prose-pg -e POSTGRES_DB=prose -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:16
Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.
agent structured-reviewer:
model: sonnet
prompt: """
Always respond with this exact JSON structure:
{
"verdict": "pass" | "fail" | "needs_review",
"issues": [{"severity": "high"|"medium"|"low", "description": "..."}],
The documented state layout places a .env configuration file alongside execution state and also instructs subagents to read from storage as needed, creating a plausible path for credential discovery or accidental inclusion in context. In an agent VM that spawns subordinate sessions, merely normalizing nearby secret-bearing files increases the chance of secret access and propagation.
# Project-level state (in working directory)
.prose/
├── .env # Config (simple key=value format)
├── runs/
│ └── {YYYYMMDD}-{HHMMSS}-{random}/
│ ├── program.prose # Copy of running program
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
- Check if value was pre-supplied or available from runtime context
- If available: bind and continue
- If not available: pause execution, display prompt, wait for user response
### Input Prompt Formats
Storing configuration in .prose/.env creates a credible path for accidental credential or secret exposure because developers commonly place tokens, endpoints, and operational settings in .env-style files. In this skill context, the same persistent filesystem used for agent state and run artifacts could expose secrets through local leakage, repository commits, backups, or downstream agent access if not tightly controlled.
# Project-level state (in working directory)
.prose/
├── .env # Config (simple key=value format)
├── runs/
│ └── {YYYYMMDD}-{HHMMSS}-{random}/
│ ├── program.prose # Copy of running program
No suspicious patterns detected.