Back to skill

Security audit

Fly.io CLI

Security checks for vulnerabilities and agentic risk

Overview

This Fly.io helper skill is purpose-aligned and repeatedly tells the agent to use read-only checks first and ask before changing production state.

Install this only for agents you trust to operate Fly.io projects. It is suitable for diagnostics and guided operations, but you should still require explicit confirmation before deploys, SSH commands, secrets changes, scaling, app destruction, or database changes.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- Prefer **read-only** commands first: `fly status`, `fly logs`, `fly config show`, `fly releases`, `fly secrets list`.
- **Do not edit/modify Fly.io apps, machines, secrets, volumes, or databases without your human’s explicit approval.**
  - Read-only actions are OK without approval.
  - Destructive actions (destroy/drop) always require explicit approval.
- When debugging builds, capture the exact error output and determine whether it’s a:
  - build/packaging issue (Dockerfile, Gemfile.lock platforms, assets precompile)

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

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

md
## High-risk operations (ask first)

These commands can execute arbitrary code on servers or mutate production state.
Only run them when the user explicitly asks you to.

- Deploy:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file clearly warns that deploys, SSH exec, and secrets changes require explicit user approval, but the Postgres mutation commands fly postgres attach and fly postgres db create are listed later without a matching local warning. Because these operations can alter application/database state, the markdown should disclose that they also require explicit approval to avoid unsafe use.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/safety.md (reported line 3)May include surrounding context.

md
# Safety policy

- Read-only Fly.io actions are allowed without asking.
- Any action that edits/modifies Fly.io state requires your human’s explicit approval.
  - Examples: deploys, scaling, secrets set/unset, volume/db create/drop, app destroy.

Static analysis

No suspicious patterns detected.