Back to skill

Security audit

Parallel Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent wrapper for creating and managing recurring Parallel web monitors, with persistence and webhook behavior disclosed but worth using deliberately.

Install only if you want agents to create and manage ongoing Parallel monitors on your behalf. Before creating a monitor, confirm the objective, cadence, and any webhook URL; before deleting one, confirm the exact monitor_id. Avoid passing untrusted monitor text through raw shell interpolation.

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:34
Finding

Potential Shell Command Injection Through an Unsanitized Monitor Objective

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 34-41; the vulnerable objective placeholder appears on line 36
Vulnerability Type: Shell command injection through user-controlled command arguments
Risk Level: Medium

Vulnerable Code

bash
parallel-cli monitor create "<objective>" [options]
parallel-cli monitor list --json
parallel-cli monitor get mon_xxx --json
parallel-cli monitor update mon_xxx [options] --json
parallel-cli monitor delete mon_xxx
parallel-cli monitor events mon_xxx --json
parallel-cli monitor simulate mon_xxx --json

Technical Analysis

The skill instructs the agent to insert a natural-language monitoring objective into a shell command. The objective originates from the user's request, but the documentation does not require structured argument execution, validation, or shell-safe escaping.

Enclosing the objective in double quotes does not neutralize every shell construct. In common POSIX-compatible shells, command substitutions such as $(command) and backtick substitutions are still evaluated inside double-quoted strings. If an agent performs direct textual substitution and submits the resulting command to a shell, a malicious objective could cause local commands to run before parallel-cli receives its arguments.

For example, an objective containing $(id) would be evaluated by the shell if directly interpolated into the documented template. The resulting command output would then become part of the argument passed to parallel-cli.

Attack Path

  1. An attacker supplies a monitoring request whose objective includes shell syntax, such as command substitution, backticks, a newline, or other control characters.
  2. The agent selects this skill and copies the objective into the documented parallel-cli monitor create template.
  3. The agent invokes the assembled command through a shell rather than passing a structured argument array directly to the proc ...[truncated 863 chars]
Remediation
View remediation

Remediation Suggestions

  • Require invocation through a process API that accepts an argument array, for example passing ["monitor", "create", objective, "--json"] directly to parallel-cli without a shell.
  • Explicitly prohibit constructing commands by concatenating or textually substituting user-controlled objectives into shell command strings.
  • If shell execution is unavoidable, apply robust platform-specific argument escaping and reject command substitutions, backticks, shell control operators, redirections, embedded newlines, and null bytes.
  • Add a security note beside the CLI examples explaining that placeholders represent separate process arguments rather than raw shell fragments.
  • Validate cadence and other enumerated options against an allowlist. Validate webhook values as URLs and pass them as separate arguments.
  • Add tests covering malicious objectives containing $(...), backticks, semicolons, redirections, quotes, backslashes, and newline characters.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill metadata and description use broad terms like 'monitor', 'track', 'watch', and 'alert me when', which overlap with common user phrasing and can cause the agent to invoke this skill in situations where the user did not clearly consent to creating a recurring background task. Because this skill can establish persistent monitoring and optional webhook delivery, accidental invocation has more consequence than a typical one-shot lookup skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill introduces monitor creation without a clear user-facing warning that this action starts an ongoing background process and may transmit observed data to a webhook endpoint. That omission can lead to uninformed consent, privacy issues, unexpected external data egress, and surprise resource usage if the agent creates monitors automatically.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The invocation examples are ambiguous and do not clearly distinguish between ordinary requests for a one-time check and requests to create an ongoing monitor. This increases the risk that an agent will launch recurring tracking infrastructure, potentially with notifications or webhooks, without sufficiently specific user authorization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The documentation presents monitor delete as a normal operation without warning that it is destructive and stops future monitoring. In agent-driven contexts, lack of a deletion warning raises the chance of accidental removal of active monitoring state that the user expected to persist.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.