T09 · Insecure Skill Coding Practices
- Location
scripts/pve.sh:15- Finding
TLS Certificate Verification Disabled for Authenticated Proxmox API Requests
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Proxmox skill is coherent, but it needs review because it can immediately change VM state and handles admin API tokens in unsafe ways.
Install only if you are comfortable giving the agent operational control over Proxmox. Use a least-privilege, easily rotated API token; avoid curl -k except in a controlled test network; prefer environment or a real secret manager over sourcing ~/.proxmox-credentials; and require manual confirmation before stop, reboot, rollback, delete, snapshot, or backup actions.
scripts/pve.sh:15TLS Certificate Verification Disabled for Authenticated Proxmox API Requests
scripts/pve.sh:5Credential File Is Executed as Arbitrary Shell Code
The backup command interpolates user-supplied placeholders such as node, vmid, and storage into a shell/API invocation without any documented validation or allowlisting. In a privileged infrastructure-management skill, unchecked parameters can trigger unintended operations against the wrong workloads or storage targets and amplify damage from prompt or input manipulation.
curl -ks -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/storage/{storage}/content?content=backup" | jq
curl -ks -X POST -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/vzdump"
-d "vmid={vmid}" -d "storage={storage}" -d "mode=snapshot"
The skill exposes shell-based operational capability but does not declare an explicit tool scope or permission boundary. That increases the chance an agent can invoke shell commands more broadly than intended when handling infrastructure-management requests, especially in a high-impact admin context like Proxmox.
The skill encourages persistent storage and reuse of long-lived Proxmox credentials via environment variables or a local credentials file. In an agent setting, session-persistent secrets raise the chance of unintended reuse, leakage into logs/history, or misuse across tasks beyond the original user intent.
---
name: proxmox
description: Manage Proxmox VE clusters via REST API. Use when user asks to list, start, stop, restart VMs or LXC containers, check node status, create snapshots, view tasks, or manage Proxmox infrastructure. Requires API token or credentials configured.
---
# Proxmox VE Management
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
PROXMOX_TOKEN_ID=user@pam!monitoring PROXMOX_TOKEN_SECRET=your-token-secret EOF chmod 600 ~/.proxmox-credentials
Create API token in Proxmox: Datacenter → Permissions → API Tokens → Add
The skill documents stop, shutdown, reboot, rollback, delete snapshot, and backup-triggering operations without prominent warnings that they can disrupt running services or cause irreversible state changes. In infrastructure automation, omission of such guardrails materially increases the risk of accidental destructive actions by an agent or operator.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -ks -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/qemu/{vmid}/snapshot" | jq
# Create snapshot
curl -ks -X POST -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/qemu/{vmid}/snapshot" \
-d "snapname=snap1" -d "description=Before update"
# Rollback
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -ks -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/storage/{storage}/content?content=backup" | jq
curl -ks -X POST -H "$AUTH" "$PROXMOX_HOST/api2/json/nodes/{node}/vzdump"
-d "vmid={vmid}" -d "storage={storage}" -d "mode=snapshot"
The script exposes start, stop, shutdown, and reboot commands that directly change VM or container state via API POST requests. Although it prints a message after issuing each request, there is no confirmation prompt or advance warning before potentially disruptive operations such as stop, shutdown, or reboot.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
stop <vmid> Force stop VM/LXC
shutdown <vmid> Graceful shutdown VM/LXC
reboot <vmid> Reboot VM/LXC
snap <vmid> [name] Create snapshot
snapshots <vmid> List snapshots
tasks <node> Show recent tasks
storage <node> Show storage status
The snapshot command sends a POST request that creates a new snapshot, which alters VM/LXC state and can affect storage usage. The script reports success afterward, but it does not provide any warning or confirmation before performing the operation.
No suspicious patterns detected.