Back to skill

Security audit

Pocketalert

Security checks for vulnerabilities and agentic risk

Overview

This notification skill is mostly transparent, but it also exposes privileged Pocket Alert administration and unverified CLI installation steps that users should review before installing.

Install only if you trust the Pocket Alert CLI source and can verify what binary you are running. Use least-privilege API keys, avoid pasting secrets into prompts or logs, restrict agents to send/list operations unless you explicitly need admin actions, and require human approval before delete, API-key, webhook, or base_url changes.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:13
Finding

Unverified Third-Party CLI Installation Creates a Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 13–19
Vulnerability Type: Unverified external binary installation
Risk Level: Medium

Vulnerable Documentation:

bash
# Install (if not already installed)
# Download from https://info.pocketalert.app/cli.html and extract to /usr/local/bin/

# Authenticate with your API key
pocketalert auth <your-api-key>

Technical Analysis

The skill instructs users to download an externally hosted CLI binary and extract it into the system-wide /usr/local/bin/ directory. It does not specify a pinned version, immutable artifact URL, expected cryptographic checksum, or signature-verification procedure.

Consequently, the executable ultimately invoked by the skill is not represented by the audited project and its integrity cannot be established from the supplied files. If the hosting infrastructure, download page, distribution channel, or artifact is compromised, an attacker could substitute a malicious executable while preserving the expected pocketalert command name.

The risk is amplified because the next documented operation provides an API key to that executable. Depending on how authentication is implemented, the key could also be exposed through shell history or process command-line inspection.

Attack Path

  1. An attacker compromises the external download infrastructure, distribution artifact, or a user's network/download workflow.
  2. The attacker replaces the legitimate CLI with a malicious binary named pocketalert.
  3. A user follows the documented instructions and installs that binary into /usr/local/bin/.
  4. The user executes pocketalert auth <your-api-key>.
  5. The malicious executable captures the API key and may transmit it to the attacker.
  6. Because the executable runs as the invoking user, it may access that user's files, environment variables, and available credentials. If installation or execution occurs with ele ...[truncated 934 chars]
Remediation
View remediation

Remediation Suggestions

  • Pin the CLI to a specific, reviewed release and use an immutable versioned artifact URL.
  • Publish an expected SHA-256 or stronger checksum through an independently protected channel and require verification before installation.
  • Cryptographically sign release artifacts and document signature verification against a pinned, trusted public key.
  • Prefer a trusted package repository that provides package signing and reproducible version metadata.
  • Avoid installation into /usr/local/bin/ when system-wide access is unnecessary. Use a user-scoped directory with restrictive permissions and avoid elevated privileges.
  • Document verification of the downloaded file's ownership, permissions, checksum, and signature before execution.
  • Do not place API keys directly in shell command arguments. Prefer secure interactive input, a protected credential store, or a narrowly scoped environment/file mechanism that does not expose secrets in shell history.
  • Issue least-privilege API keys and provide procedures for rotation and revocation if compromise is suspected.
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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The skill instructs users to authenticate with an API key but provides no guidance on secure credential handling, storage, or output redaction. In agent and automation environments, this can lead to secrets being pasted into prompts, shell history, logs, or transcripts, making credential exposure more likely.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill metadata presents this as a push-notification skill, but the documented commands grant much broader administrative access, including resource management, webhook management, and configuration changes. This capability mismatch can cause an agent or user to invoke privileged actions they did not intend to expose, violating least privilege and increasing the chance of destructive or credential-impacting operations.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Exposing API key listing in a skill intended for sending notifications creates unnecessary access to sensitive credentials and administrative material. An agent using this skill could enumerate secrets or metadata unrelated to the core task, enabling credential leakage, account takeover, or broader service abuse if outputs are logged or surfaced to users.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
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.

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

Manage Applications

bash
# Create application
pocketalert apps create --name "My App"
pocketalert apps create -n "Production" -c "#FF5733"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documentation includes delete commands for applications, devices, and webhooks without any warning, confirmation guidance, or scoping restrictions. In an agent context, this raises the risk of accidental destructive actions that may irreversibly remove integrations, delivery targets, or operational resources.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Webhook templates can embed arbitrary incoming payload fields directly into push notifications, but the documentation does not warn that event payloads may contain sensitive or internal data. This creates a data-leak path from integrated systems to mobile devices and notification surfaces that may be less controlled or more widely visible.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Allowing the skill to change stored authentication and base URL settings enables an agent to re-point the CLI to an attacker-controlled endpoint or replace the configured API key. This can redirect notifications and associated data, cause credential misuse, or break service integrity well beyond the stated notification purpose.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.