Back to skill

Security audit

PCO CLI - Planning Center Services

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Planning Center CLI reference, but it delegates execution to an unaudited local TypeScript file and exposes broad authenticated API mutation and deletion without clear safeguards.

Review the external CLI source before use, pin it to a trusted commit or release, and use least-privilege Planning Center credentials. Treat raw POST, PATCH, and DELETE commands as production changes: verify endpoints and data carefully and avoid allowing an agent to choose them from untrusted input.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:5
Finding

Execution of an Unpinned External CLI Implementation

Content
View full analysis
``` ``` ### Technical Analysis The audited skill does not contain the CLI implementation. Instead, it directs the user or agent to execute `pco.ts` from a personal filesystem path and identifies a mutable external GitHub repository as its source. The external implementation is not pinned to an immutable commit, release, checksum, or cryptographic signature. Consequently, the effective code executed by the documented command can differ from the code that was originally reviewed. The invoked script would execute under the user's local privileges and may have access to the Planning Center credentials stored under `~/.config/pco-cli/config.json`. The artifact does not itself download the repository, and no malicious behavior was found in `SKILL.md`. The risk arises from delegating execution to an implementation outside the audited package whose integrity cannot be established from the available artifact. ### Attack Path 1. An attacker compromises the external repository, modifies the local `pco.ts` file, or replaces the file at the documented absolute path. 2. A user or agent follows the skill instructions and invokes: `tsx /Users/ruby/Projects/pco-cli/pco.ts `. 3. `tsx` executes the modified TypeScript implementation with the invoking user's privileges. 4. The modified implementation reads accessible files, including the configured Planning Center credentials. 5. The implementation can misuse those credentials, transmit data, or perform unauthorized API operations within the credentials' permissions. ### Impact Assessment Successful exploitation can provide arbitrary code execu ...[truncated 361 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:139
Finding

Unrestricted Authenticated Raw API Mutation and Deletion

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill claims it is limited to PCO Services, yet it documents a generic raw API interface that supports arbitrary HTTP methods and endpoints, including POST, PATCH, and DELETE. That mismatch can cause users or downstream agents to overtrust the scope of the tool and unintentionally access or modify data outside the advertised domain, increasing the chance of unauthorized or destructive actions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The documentation states the skill is for PCO Services only, but it includes people commands that appear broader than the stated scope. This inconsistency can mislead users and agents about what data domains are reachable, potentially exposing or querying person-level data under a narrower trust assumption.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documents direct raw API usage with mutating methods like POST, PATCH, and DELETE, but provides no warning about the risk of changing or deleting remote data. In an agent context, this omission lowers friction for destructive actions and increases the chance of accidental or unsafe state changes against production resources.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.