Back to skill

Security audit

Pg Sell

Security checks for vulnerabilities and agentic risk

Overview

This seller skill is mostly coherent, but it includes broader financial and marketplace commands plus credential-handling examples that need review before installation.

Install only if you intend to manage ProxyGate seller listings and expose services through ProxyGate. Before using it, confirm each command with the user, avoid putting real API keys or OAuth tokens directly in shell commands, verify any custom gateway URL, review uploaded docs and headers for secrets, and do not use the included wallet, buyer proxy, or job-marketplace commands unless the user explicitly asks for those separate workflows.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:39
Finding
Sensitive credentials are accepted through command-line arguments<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:39-48`, `SKILL.md:68-70`; `references/commands.md:5-7`, `references/commands.md:18` **Vulnerability Type**: Exposure of API keys and OAuth tokens through process arguments **Risk Level**: Medium ### Vulnerable Code From `SKILL.md:39-48`: ```bash proxygate listings create --non-interactive \ --service-name "My API" \ --base-url "https://api.example.com" \ --auth-pattern bearer \ --api-key "your-api-key" \ --price 5000 \ --total-rpm 100 \ --categories ai \ --description "Fast Llama 3.3 access" ``` From `SKILL.md:68-70`: ```bash # Rotate API key or OAuth2 credentials (no downtime) proxygate listings rotate-key <id> --key <new-api-key> proxygate listings rotate-key <id> --oauth2 <new-token> ``` From `references/commands.md:5-7`: ```markdown - `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai) - `--keypair <path>` — Path to Solana keypair JSON file - `--api-key <key>` — Override API key ``` From `references/commands.md:18`: ```bash proxygate login --key pg_live_... # authenticate with API key ``` ### Technical Analysis The documented workflows place ProxyGate API keys, upstream API keys, and OAuth tokens directly in command-line arguments. Once placeholders are replaced with real credentials, those values may become visible through: - Shell history files. - Process listings such as `ps`, `/proc/<pid>/cmdline`, or process-monitoring software. - Terminal capture and session-recording systems. - CI/CD logs and command tracing. - Agent transcripts or tool-execution logs. - Crash diagnostics and observability platforms that record process arguments. This conflicts with the principle that sensitive values should be transmitted using channels designed to suppress disclosure, such as protected standard input, no-echo interactive prompts, credential stores, or restricted-permission secret files. The documented `--gateway <url>` option inc ...[truncated 2516 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Avoid secrets in command-line arguments** - Add support for reading API keys and OAuth tokens from protected standard input. - Use interactive no-echo prompts for manual authentication and rotation. - Integrate with operating-system credential stores or dedicated secret managers. - Support restricted-permission secret files without printing their contents. 2. **Use environment variables only with appropriate safeguards** - If environment variables are supported, document their exposure limitations. - Do not print secret-bearing environment variables in debug or CI logs. - Prefer secret-manager injection over persistent shell-profile configuration. 3. **Protect command and execution logs** - Redact values supplied to `--api-key`, `--key`, and `--oauth2`. - Ensure CLI error messages, telemetry, and crash reports do not include raw arguments. - Mark credential parameters as sensitive in any structured logging system. 4. **Harden custom gateway handling** - Require explicit confirmation when credentials will be sent to a non-default gateway. - Permit only HTTPS gateway URLs by default. - Clearly display the destination hostname before authentication. - Consider an allowlist or trust-on-first-use mechanism for custom gateways. - Do not forward credentials across redirects to a different origin. 5. **Improve documentation** - Replace secret-bearing examples with secure stdin, prompt, credential-store, or secret-file workflows. - Add a warning that literal secrets must not be placed in shell commands, scripts, source control, transcripts, or CI configuration. - Document credential revocation and rotation procedures for suspected exposure. 6. **Recommended interface patterns** - Provide commands such as `proxygate login --key-stdin`. - Provide commands such as `proxygate listings rotate-key <id> --key-stdin`. - Alternatively, prompt securely when a secret option is ...[truncated 13 chars]
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (5)

Session Persistence

Medium
Category
Rogue Agent
Content
---
name: pg-sell
description: Use when selling API capacity on ProxyGate — creating listings, managing listings (update/pause/delete), rotating keys, uploading docs, starting tunnels, managing headers, viewing earnings, or exposing local services. Make sure to use this skill whenever someone mentions "list API", "sell capacity", "create listing", "start tunnel", "expose service", "earnings", "go live", "monetize API", "rotate key", "pause listing", or wants to make their API available on ProxyGate.
---

# ProxyGate — Sell API Capacity
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger description is broad enough to activate on generic phrases like "go live," "earnings," or "expose service," which may route unrelated user requests into a skill that creates listings, rotates keys, or opens tunnels. In an agent setting, overbroad routing can cause inappropriate actions or advice in a sensitive workflow involving publication of APIs and exposure of local services.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill encourages creating listings and starting tunnels but does not warn that doing so may expose local services and send request/response traffic through ProxyGate infrastructure. Users may unknowingly publish internal endpoints, documentation, headers, or sensitive data flows without understanding the security and privacy implications.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The skill is described as being for selling API capacity on ProxyGate, but this reference file exposes much broader capabilities including buyer-side discovery/proxying, wallet deposit/withdrawal, and job-marketplace operations. In an agent setting, overbroad command documentation can expand the action surface beyond user expectations and skill scope, increasing the risk of unintended purchases, fund movements, or unrelated marketplace actions if the agent uses available commands opportunistically or is prompt-injected.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
Job marketplace commands are unrelated to the stated purpose of monetizing and managing API listings, yet they enable creating, claiming, submitting, accepting, and canceling escrow-backed jobs. Including these commands in the same skill creates unnecessary privilege and behavioral scope, making prompt confusion or malicious instruction chaining more dangerous because the agent may perform financially or operationally significant actions outside the user's intended seller workflow.

Static analysis

No suspicious patterns detected.