T09 · Insecure Skill Coding Practices
- Location
scripts/unraid-query.sh:93- Finding
API Key Exposure Through Disabled TLS Verification and Redirect Following
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Unraid monitoring skill is mostly purpose-aligned, but it handles API keys, logs, and persistent agent memory in ways users should review before installing.
Install only if you are comfortable with a local shell skill using an Unraid API key to query infrastructure details and logs. Use a dedicated Viewer key, avoid running the dashboard until its memory-bank and debug-file behavior is acceptable to you, prefer verified HTTPS, and treat any generated reports or log output as sensitive.
scripts/unraid-query.sh:93API Key Exposure Through Disabled TLS Verification and Redirect Following
scripts/dashboard.sh:7Untrusted Server Data Is Written Into Persistent Agent Memory
scripts/dashboard.sh:49Raw System Logs Are Persisted to Predictable and Potentially Traversable Paths
examples/read-logs.sh:8GraphQL Injection Through Unvalidated Log Reader Arguments
Listing an apiKeys endpoint for a monitoring skill is especially sensitive because API key metadata is credential-adjacent and unnecessary for ordinary health/status workflows. Exposure of key inventories can aid privilege escalation, targeting of active credentials, or follow-on social engineering and administrative abuse even if raw secrets are not returned.
The curl invocation uses -k, which disables TLS certificate verification while sending the x-api-key header and GraphQL query to the server. This enables man-in-the-middle interception or redirection attacks, allowing an attacker on the network to steal the API key, observe responses, or tamper with the returned monitoring data.
The README instructs users to export a live API key in the shell environment and highlights log-reading capability, but it does not warn about handling secrets, redacting output, or the possibility that logs may contain sensitive information. In an infrastructure-monitoring context, this can lead to accidental credential leakage through shell history, process environment exposure, screenshots, or disclosure of secrets contained in logs.
The trigger list is broad and includes open-ended language such as 'And more Unraid-related monitoring tasks,' which can cause the skill to activate for loosely related requests without strong user intent confirmation. In a skill that can query infrastructure state and read logs, overbroad activation increases the chance of exposing sensitive operational data or using stored credentials in contexts the user did not clearly request.
The skill advertises and demonstrates shell-based execution through helper scripts, but it does not declare any tool scope or allowed-tools restrictions. In an agent environment, this can lead to overly broad shell access being granted implicitly, increasing the chance of unintended command execution, data exposure, or misuse beyond the intended read-only Unraid monitoring workflow.
The skill prominently encourages reading Unraid logs but does not warn that logs frequently contain sensitive operational details, hostnames, paths, IPs, user activity, and potentially personal or secret material. In a monitoring skill, this omission makes accidental over-collection or disclosure more likely, especially if an agent retrieves and surfaces raw log content to users or other systems.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get CPU, OS, motherboard, and hardware details.
curl -s -X POST "https://YOUR-UNRAID/graphql" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
No suspicious patterns detected.