Back to skill

Security audit

schoolpass-curl

Security checks for vulnerabilities and agentic risk

Overview

This read-focused skill also includes commands that can change or cancel a child's school arrangements without requiring confirmation.

Review before installing. For account checks, restrict requests to reads and necessary authentication calls. Separate attendance and pickup changes into an explicitly authorized workflow that verifies the child, date, and intended action. Confirm the API host through your school portal, protect account credentials, and inspect the missing live-check script before running it. The bundled write commands are documented examples, not automatic actions.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The linked request reference includes a live DELETE operation that cancels an arrival/dismissal change, despite this skill's read-oriented description. Using that recipe outside explicitly authorized write work could remove an intended student arrangement and affect school pickup coordination.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill advertises account reads but directs the agent to ready-to-run reference recipes that also include POST studentchange. This scope mismatch can lead an agent handling a read-only request to modify a child's attendance or dismissal arrangements; the supplied material does not establish malicious intent.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/requests.md (reported line 4)May include surrounding context.

md
# Ready-to-run requests

Shapes come from the SchoolPass Swagger spec and `docs/SCHOOLPASS-API.md`. Run
the live check (`node --env-file=.env scripts/live-check.mjs`) once to confirm
the auth-response fields on your account before trusting the `jq` recipes below.

## Helper — source this first

The read-only SchoolPass skill includes executable requests to create and cancel student arrival/dismissal changes.

High
Category
Excessive Agency
Confidence
100% confidence
Finding

The reference supplies authenticated POST and DELETE recipes that create and cancel student changes, extending a read-only skill into live mutations. These are documented examples rather than automatically executed actions, but an agent following them can alter sensitive attendance and dismissal records without a write-specific authorization boundary.

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/requests.md (reported line 18)May include surrounding context.

md
# on disk, but keep this skill's state self-contained regardless).
SP_SESSION="${SCHOOLPASS_CURL_SESSION:-$HOME/.schoolpass-mcp/curl-token.json}"

# sp_curl <method> <path> [body-json] [-- extra-curl-args...]
# Adds the AppCode header, Authorization (if $SP_TOKEN set), and JSON accept.
sp_curl() {
  local method="$1" path="$2" body="${3:-}"

Ready-to-run write requests modify live student attendance and dismissal records without a safety warning.

Medium
Category
Output Handling
Confidence
97% confidence
Finding

The ready-to-run examples contain concrete student, date, and change-series identifiers without a mandatory target-validation or confirmation step. Although the section labels these operations as writes, copying or executing the examples against a live account could unintentionally submit an absence or cancel a change if the identifiers are valid and authorized.

Content

No source excerpt is available for this finding.