Pilot Backup

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The backup purpose is clear, but the restore workflow can trust and unpack a received peer archive directly into persistent agent state without verifying the sender or archive contents.

Only use this with a peer you explicitly trust and confirm. Before backing up, inspect which $HOME/.pilot JSON files will be included and whether they contain secrets. Before restoring, do not unpack a received archive directly into $HOME/.pilot; verify the sender, signature or hash, and archive contents, then restore from a staging directory with a current local backup available.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI03: Identity and Privilege Abuse
Medium
What this means

Private agent configuration or state could be sent to the wrong peer if the workflow is run as written or without confirming the destination and included files.

Why it was flagged

The workflow archives local Pilot agent JSON configuration/state and sends it to a peer destination shown in the example, without requiring explicit user-provided peer selection or showing exclusions for sensitive state.

Skill content
BACKUP_DEST="1:0001.AAAA.BBBB" ... tar czf "$BACKUP_FILE" "$HOME/.pilot"/*.json ... pilotctl --json send-file "$BACKUP_DEST" "$BACKUP_FILE"
Recommendation

Require the user to choose and confirm the backup peer, list the files before sending, exclude secrets where possible, and document what Pilot state may be included.

#
ASI06: Memory and Context Poisoning
High
What this means

A stale, incorrect, or malicious peer-provided archive could overwrite or poison persistent agent configuration/state that may be reused in later sessions.

Why it was flagged

The restore flow takes the first received file and extracts it into the persistent Pilot state directory, with no verification of origin, freshness, signature, or archive paths.

Skill content
BACKUP_FILE=$(pilotctl --json received | jq -r '.received[0].filename')
tar xzf "$HOME/.pilot/received/$BACKUP_FILE" -C "$HOME/.pilot/"
Recommendation

Restore only from a verified peer and request ID, verify a signature or hash, inspect the archive contents, extract to a temporary staging directory first, and require explicit user approval before replacing state.

#
ASI07: Insecure Inter-Agent Communication
Medium
What this means

A file from another peer or an unrelated transfer could be mistaken for the requested backup and restored into the agent state directory.

Why it was flagged

The restore request names a backup peer, but the file selected for restore is simply the first received file and is not shown as being matched to that peer or request.

Skill content
pilotctl --json send-message "$BACKUP_PEER" --data '{"type":"backup_request","date":"latest"}'
sleep 3

BACKUP_FILE=$(pilotctl --json received | jq -r '.received[0].filename')
Recommendation

Filter received files by sender, request ID, timestamp, expected filename, and authenticated metadata before using them.

#
ASI02: Tool Misuse and Exploitation
Medium
What this means

A normal-looking restore command could overwrite important local agent files or extract unexpected archive contents.

Why it was flagged

The skill uses raw Bash for a high-impact restore operation into the agent state directory, but the documented command lacks guardrails such as archive validation, dry-run listing, or confirmation.

Skill content
allowed-tools:
  - Bash ... tar xzf "$HOME/.pilot/received/$BACKUP_FILE" -C "$HOME/.pilot/"
Recommendation

Add safer restore steps: validate paths, reject absolute or parent-directory entries, use a staging directory, show a diff/listing, and ask before applying changes.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

The skill's real behavior depends on an external Pilot binary/daemon that the user must obtain and trust separately.

Why it was flagged

The reviewed artifact contains no code or install spec, so the safety of the required pilotctl binary and daemon is outside this scan.

Skill content
Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start).
Recommendation

Install pilotctl only from the official source, keep it updated, and verify its configuration before allowing backups or restores.

#
ASI09: Human-Agent Trust Exploitation
Low
What this means

A user may assume all backup copies are encrypted when the local retained archive shown in the workflow may not be.

Why it was flagged

The description emphasizes encryption, but the visible workflow creates and locally stores a plain tar.gz archive; encryption may be provided by pilotctl for transport, but that is not shown for local backup storage.

Skill content
Automated backup of agent configuration and state files to trusted peers with encryption and versioning. ... tar czf "$backup_file" "$HOME/.pilot"/*.json ... cp "$backup_file" "$BACKUP_STORAGE/"
Recommendation

Document exactly where encryption is applied, encrypt local retained backups if needed, and avoid implying at-rest encryption unless the workflow enforces it.