Back to skill

Security audit

Peon Ping for Openclaw

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly coherent, but its fallback installer tells an agent to run an unverified remote shell script directly from GitHub.

Review this skill before installing. The PeonPing setup goal is understandable, but the fallback installer should be changed to a pinned, verifiable download or a package-managed install path, with explicit user approval before any downloaded script runs.

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:27
Finding
Unverified Remote Installation Script Executed Directly by Bash## Vulnerability Details **File Location**: `SKILL.md`, lines 27–28 **Vulnerability Type**: Remote mutable payload retrieval and execution **Risk Level**: Critical ```bash curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash peon-ping-setup ``` ### Technical Analysis The fallback installation workflow retrieves `install.sh` from the mutable `main` branch of an external GitHub repository and pipes the response directly into Bash. The downloaded content is neither saved for inspection nor authenticated through a cryptographic signature or checksum. It is also not pinned to an immutable commit or versioned release. Consequently, the code executed at installation time can differ from the content reviewed during this audit. Using an official project URL does not eliminate the risk of repository compromise, maintainer-account takeover, malicious upstream changes, DNS or platform compromise, or an unintended modification to the installation script. Directly piping the response into Bash also prevents meaningful review between retrieval and execution. Depending on the behavior of the remote script, subsequent network or execution failures may leave the system partially modified. This behavior exceeds the minimum privileges necessary to configure completion sounds. A pinned and verified package or release artifact can provide the declared functionality without granting a mutable remote script immediate command execution under the Agent user's account. ### Attack Path 1. A user asks the Agent to install or configure completion sounds. 2. The Agent loads this Skill and follows its prescribed installation workflow. 3. Homebrew is unavailable, causing the fallback path to be selected. 4. An attacker compromises the upstream repository or maintainer account, or otherwise causes malicious content to be served from the referenced mutable `main/install.sh` URL. 5. `curl` retrieves the attacker-controlled script. 6. The shell pipe pass ...[truncated 902 chars]
Remediation
## Remediation Suggestions 1. Remove the `curl | bash` execution pattern. 2. Prefer a version-pinned package-manager installation or a signed, versioned release artifact. 3. Pin downloads to an immutable release or commit rather than the mutable `main` branch. 4. Download the installer to a local file without executing it immediately. 5. Verify the artifact using a cryptographic signature or a SHA-256 checksum obtained through a trusted, independently authenticated channel. 6. Inspect or present the installer and its intended system changes before execution. 7. Require explicit user approval after download and verification but before running the installer. 8. Execute using ordinary user permissions unless a specific installation step demonstrably requires elevation. 9. Document files, services, permissions, and network resources modified by installation, and provide an uninstall or rollback procedure. 10. Fail closed when verification cannot be completed; do not silently fall back to an unverified installer. A safer conceptual workflow is: ```bash curl -fL -o install.sh "https://raw.githubusercontent.com/PeonPing/peon-ping/<IMMUTABLE_COMMIT>/install.sh" printf '%s %s\n' '<TRUSTED_SHA256>' 'install.sh' | shasum -a 256 -c - less install.sh bash install.sh ``` The immutable reference and checksum must be replaced with values published and authenticated by the upstream project. Execution should occur only after successful verification and explicit user approval.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Missing User Warnings

High
Confidence
96% confidence
Finding
The installation path modifies the system and executes downloaded shell code without any warning, consent checkpoint, or explanation of risk. In an agent setting, this is especially dangerous because it normalizes unattended system changes and remote code execution under the guise of convenience.

Chaining Abuse

High
Category
Tool Misuse
Content
If Homebrew is unavailable, use:

```bash
curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash
peon-ping-setup
peon packs install orc-peon || true
peon packs use orc-peon
Confidence
98% confidence
Finding
The `| bash` construct is a classic high-risk pattern because it immediately executes whatever bytes are returned by the network request. This removes opportunities for validation, auditing, or user review and can turn a transient upstream compromise into instant code execution on the host.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The manifest description says to use the skill when the user asks for "hassle-free completion sounds for coding/agent workflows," which is broad natural language that could overlap with many general requests about coding setup or notifications. It does not define specific trigger phrases, scope limits, or negative examples to clarify when this skill should and should not activate.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to execute a remote installer script directly from the network with `curl | bash`, which gives unreviewed code immediate shell execution on the user's machine. That is broader than the stated purpose of configuring notification sounds and creates supply-chain and arbitrary code execution risk if the URL, upstream repository, or transport path is compromised.

External Script Fetching

Low
Category
Supply Chain
Content
If Homebrew is unavailable, use:

```bash
curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash
peon-ping-setup
peon packs install orc-peon || true
peon packs use orc-peon
Confidence
92% confidence
Finding
Fetching and executing an external script from GitHub introduces dependency on mutable remote content outside the local trust boundary. Even if the project is legitimate, the skill provides no integrity verification, pinning, or review step, so compromise of the repository or script contents could lead to arbitrary command execution.

Static analysis

No suspicious patterns detected.