other
- Location
SKILL.md:69- Finding
Plaintext Credentials Disclosed to an External Vault Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a coherent hosted credential vault, but it asks agents to send and persist high-impact API keys with under-disclosed plaintext handling and weak optional encryption guidance.
Review before installing. Use this only if you are comfortable trusting AgentLair as a custodian for the credentials you store there. Prefer least-privileged and revocable provider keys, avoid storing live financial or admin tokens unless necessary, require explicit confirmation before rotate or delete actions, and do not rely on the optional AES-CBC shell example for zero-knowledge storage.
SKILL.md:69Plaintext Credentials Disclosed to an External Vault Service
SKILL.md:267Unauthenticated AES-CBC and Unsafe Passphrase Handling in Optional Encryption Workflow
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
primaryEnv: AGENTLAIR_API_KEY
requires:
bins:
- curl
tags:
- credentials
- secrets
The skill claims credentials stay in the vault and only a vault token is held, but the examples explicitly retrieve plaintext secrets into local shell variables such as STRIPE_KEY and PLAINTEXT. That means secrets do exist in agent memory and may be exposed via process inspection, shell history mistakes, logs, or downstream command tracing, so the stated blast-radius reduction is overstated.
The documentation includes immediate destructive DELETE operations for removing secrets and all versions without requiring confirmation guidance, backup advice, or user-approval language. In an agent context, this increases the risk of accidental irreversible credential loss or service disruption from an ambiguous or misinterpreted instruction.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s -X PUT "https://agentlair.dev/v1/vault/stripe-live" \
-H "Authorization: Bearer $AGENTLAIR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ciphertext": "sk_live_USER_PROVIDED_KEY", "metadata": {"label": "Stripe live key", "service": "stripe"}}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://api.stripe.com/v1/balance" \
-H "Authorization: Bearer $STRIPE_KEY"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
SECRET="sk-ant-YOUR-KEY"
ENCRYPTED=$(echo -n "$SECRET" | openssl enc -aes-256-cbc -base64 -k "$LOCAL_PASSPHRASE")
curl -s -X PUT "https://agentlair.dev/v1/vault/anthropic-key" \
-H "Authorization: Bearer $AGENTLAIR_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"ciphertext\": \"$ENCRYPTED\", \"metadata\": {\"encrypted\": \"aes-256-cbc\", \"label\": \"Anthropic API key\"}}"
The skill claims credentials stay in the vault and only a vault token is held, but the examples explicitly retrieve plaintext secrets into local shell variables such as STRIPE_KEY and PLAINTEXT. That means secrets do exist in agent memory and may be exposed via process inspection, shell history mistakes, logs, or downstream command tracing, so the stated blast-radius reduction is overstated.