Back to skill

Security audit

pickuppatrol-mcp

Security checks for vulnerabilities and agentic risk

Overview

The examples can expose your login credentials and leave children's school records in inadequately protected temporary files.

Review and correct the shell examples before use: keep passwords out of process arguments, avoid retaining exported credentials, and use private temporary files with cleanup for authentication output and child records. Authorize the exact child, dates and dismissal changes, then verify the saved result. Keep health-audit and password operations outside routine dismissal tasks. Both bundled files were reviewed; live API behavior and the separately referenced MCP server were not tested.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (6)

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
---
name: pickuppatrol-api
description: "Read and change your children's school dismissal plans on PickUp Patrol (app.pickuppatrol.net) from a shell with curl — students, weekly defaults, day-by-day changes, school cutoff times."
---

# PickUp Patrol from a shell

The login code puts the password in command-line arguments despite explicitly instructing otherwise at L019.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

The password is passed as a jq --arg argument and then embedded in curl's -d argument, despite being collected with a hidden prompt. Local processes or monitoring systems with access to process arguments could capture the credentials, potentially enabling access to children's information and unauthorized dismissal-plan changes.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/api.md (reported line 20)May include surrounding context.

Authentication

bash
curl -sS -c jar -X POST "$PUP/Authenticate" -H 'Content-Type: application/json' \
  -d '{"provider":"credentials","UserName":"…","Password":"…","RememberMe":true}'

The skill exposes health-screening audit retrieval outside its dismissal-plan scope (L051).

Medium
Category
Excessive Agency
Confidence
92% confidence
Finding

The reference includes GetParentHealthScreenAudits and its ScreenDate argument, enabling retrieval of health-screening audit information. This is a separate, potentially sensitive data category with no stated role in reading or changing students' dismissal plans.

Content

No source excerpt is available for this finding.

The skill exposes password changes despite being scoped to school dismissal plans (L107).

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

The write-DTO reference provides the method and request fields for changing the user's account password. Changing account credentials is distinct from authenticating to read or update dismissal plans and is not justified by the manifest's stated purpose.

Content

No source excerpt is available for this finding.

The weekly-defaults workflow saves complete student records in predictable temporary files without a privacy or retention warning.

Medium
Category
Output Handling
Confidence
98% confidence
Finding

The workflow stores complete student records in predictable shared temporary paths without setting restrictive permissions or cleaning them up. Depending on local permissions and filesystem protections, another local user could read sensitive child information or pre-create or modify these files; the edited record is subsequently submitted to an endpoint that changes dismissal defaults.

Content

No source excerpt is available for this finding.