ipeaky
ยท v3.2.0
Secure API key management for OpenClaw. Store, list, test, and delete API keys without exposing them in chat history. Keys are stored directly in openclaw.json via gateway config.patch โ fully native integration. Use when a user needs to provide, manage, or test API keys (e.g., OpenAI, ElevenLabs, Anthropic, Brave, or any service). Triggers on phrases like "add API key", "store my key", "manage keys", "test my key", "set up API key", or when a skill requires an API key that isn't configured.
โ ๏ธ Hazard Flags
๐ Capabilities
Execution
- โ Shell execution
- โ Code execution
- โ Install dependencies
- โ Persistence
- Privilege: user
Filesystem
- โ Read workspace
- โ Write workspace
- โ Read home
- โ Write home
- โ Read system
- โ Delete
Network
- Egress: any
- โ Ingress
Credentials
- โ Environment vars
- โ Credential files
- โ Browser data
- โ Keychain
Actions
๐ Containment
Level: maximum
- APPROVE_PURCHASE: Financial actions possible
- SANDBOX_CONTAINER: Code execution capability
- LOG_ACTIONS: Audit trail for all actions
โก Risks
Mitigation: Block keychain access or use isolated environment.
Mitigation: Avoid accessing system directories unless absolutely necessary.
Mitigation: Provide clear, detailed description of skill functionality
Want a deeper analysis?
This report was generated by static analysis. Get an LLM-powered deep review with behavioral reasoning and attack surface mapping.
๐ง Deep Analysis โ $5.00๐จ Incident Response
Kill switch: Stop the agent process
Containment: Review logs for unexpected actions
Recovery: Depends on skill capabilities
๐ Raw SSDS JSON click to expand
{
"meta": {
"document_id": "ssds:auto:ipeaky:3.2.0",
"ssds_version": "0.2.0",
"scanner_version": "0.4.0+fe6fd9123d50",
"created_at": "2026-03-05T12:41:56.317Z",
"created_by": {
"agent": "safeagentskills-cli/generate-ssds"
},
"language": "en",
"notes": "Auto-generated SSDS. Manual review recommended."
},
"skill": {
"name": "ipeaky",
"version": "3.2.0",
"format": "agent_skill",
"description": "Secure API key management for OpenClaw. Store, list, test, and delete API keys without exposing them in chat history. Keys are stored directly in openclaw.json via gateway config.patch โ fully native integration. Use when a user needs to provide, manage, or test API keys (e.g., OpenAI, ElevenLabs, Anthropic, Brave, or any service). Triggers on phrases like \"add API key\", \"store my key\", \"manage keys\", \"test my key\", \"set up API key\", or when a skill requires an API key that isn't configured.",
"publisher": "unknown",
"source": {
"channel": "local"
},
"artifact": {
"sha256": "86cbb7283ba662b01fb522d5e7bc727a8b495d2ac24f313127a8da8d4eedd9ae",
"hash_method": "files_sorted"
}
},
"capabilities": {
"execution": {
"can_exec_shell": true,
"can_exec_code": false,
"privilege_level": "user",
"can_install_deps": false,
"can_persist": false
},
"filesystem": {
"reads_workspace": true,
"reads_user_home": true,
"reads_system": false,
"writes_workspace": true,
"writes_user_home": true,
"writes_system": false,
"can_delete": true
},
"network": {
"egress": "any",
"ingress": false
},
"credentials": {
"reads_env_vars": true,
"reads_credential_files": true,
"reads_browser_data": false,
"reads_keychain": true
},
"services": [],
"actions": {
"can_send_messages": false,
"can_post_public": false,
"can_purchase": true,
"can_transfer_money": false,
"can_deploy": false,
"can_delete_external": false
},
"prompt_injection_surfaces": [
"web"
],
"content_types": [
"general"
]
},
"hazards": {
"hdac": {
"H": 4,
"D": 4,
"A": 4,
"C": 1
},
"flags": [
"EXEC",
"FS_READ_WORKSPACE",
"FS_READ_USER",
"FS_WRITE_WORKSPACE",
"FS_WRITE_USER",
"FS_DELETE",
"NET_EGRESS_ANY",
"CREDS_ENV",
"CREDS_FILES",
"CREDS_KEYCHAIN",
"ACT_PURCHASE",
"PI_WEB"
],
"custom_flags": [
{
"code": "CRED_KEYCHAIN",
"name": "Keychain Access",
"description": "Accesses system keychain in: paid_tier/stripe-setup.sh"
},
{
"code": "FILE_DELETE",
"name": "File Deletion",
"description": "Can delete files in: tests/run_tests.sh"
},
{
"code": "TOOL_ABUSE",
"name": "Unauthorized Tool Use",
"description": "MCP_SYS_CRITICAL_ACCESS, TOOL_ABUSE_SYSTEM_MODIFICATION, MCP_SYS_FILE_DESTRUCTION: Access to critical system directories"
},
{
"code": "SOCIAL_ENGINEERING",
"name": "Social Engineering Risk",
"description": "SOCIAL_ENG_VAGUE_DESCRIPTION, SOCIAL_ENG_ANTHROPIC_IMPERSONATION: Skill description is too vague or missing"
},
{
"code": "COMMAND_INJECTION",
"name": "Command Injection Risk",
"description": "TIRITH_INSECURE_TLS, COMMAND_INJECTION_USER_INPUT: Disabled TLS verification allows man-in-the-middle attacks"
},
{
"code": "PROMPT_INJECTION",
"name": "Prompt Injection Risk",
"description": "MCP_COERCIVE_HIDDEN_PARAMS: Attempts to access hidden parameters or extract model internals"
}
],
"confidence": {
"level": "medium",
"basis": [
"static_analysis"
],
"notes": "Detected 6 security patterns (24 vendored rule hits). Review recommended."
},
"rationale": {
"H": "H4: Critical: Privilege escalation or malware detected",
"D": "D4: Critical: Credential theft or data exfiltration",
"A": "A4: External actions (deploy/message/post)",
"C": "C1: General content"
}
},
"containment": {
"level": "maximum",
"required": [
{
"control": "APPROVE_PURCHASE",
"reason": "Financial actions possible"
},
{
"control": "SANDBOX_CONTAINER",
"reason": "Code execution capability"
}
],
"recommended": [
{
"control": "LOG_ACTIONS",
"reason": "Audit trail for all actions"
}
],
"uncontained_risk": "Risk level depends on manual review of actual capabilities."
},
"risks": {
"risks": [
{
"risk": "Keychain/credential store access in: paid_tier/stripe-setup.sh",
"severity": "high",
"mitigation": "Block keychain access or use isolated environment."
},
{
"risk": "Unauthorized tool use: MCP_SYS_CRITICAL_ACCESS, TOOL_ABUSE_SYSTEM_MODIFICATION, MCP_SYS_FILE_DESTRUCTION",
"severity": "critical",
"mitigation": "Avoid accessing system directories unless absolutely necessary."
},
{
"risk": "Command injection risk: TIRITH_INSECURE_TLS, COMMAND_INJECTION_USER_INPUT",
"severity": "high"
},
{
"risk": "Social engineering indicators: SOCIAL_ENG_VAGUE_DESCRIPTION, SOCIAL_ENG_ANTHROPIC_IMPERSONATION",
"severity": "low",
"mitigation": "Provide clear, detailed description of skill functionality"
}
],
"limitations": [
"Static analysis only - runtime behavior not verified"
]
},
"incident_response": {
"kill_switch": [
"Stop the agent process"
],
"containment": [
"Review logs for unexpected actions"
],
"recovery": [
"Depends on skill capabilities"
]
},
"evidence": [
{
"evidence_id": "EV:file-1",
"type": "file_excerpt",
"title": "paid_tier/stripe-checkout.sh",
"file_path": "paid_tier/stripe-checkout.sh"
},
{
"evidence_id": "EV:file-2",
"type": "file_excerpt",
"title": "paid_tier/stripe-setup.sh",
"file_path": "paid_tier/stripe-setup.sh"
},
{
"evidence_id": "EV:file-3",
"type": "file_excerpt",
"title": "README.md",
"file_path": "README.md"
},
{
"evidence_id": "EV:file-4",
"type": "file_excerpt",
"title": "scripts/detect_test_config.sh",
"file_path": "scripts/detect_test_config.sh"
},
{
"evidence_id": "EV:file-5",
"type": "file_excerpt",
"title": "scripts/monitor.sh",
"file_path": "scripts/monitor.sh"
},
{
"evidence_id": "EV:file-6",
"type": "file_excerpt",
"title": "scripts/register_key_path.sh",
"file_path": "scripts/register_key_path.sh"
},
{
"evidence_id": "EV:file-7",
"type": "file_excerpt",
"title": "scripts/secure_input_mac.sh",
"file_path": "scripts/secure_input_mac.sh"
},
{
"evidence_id": "EV:file-8",
"type": "file_excerpt",
"title": "scripts/store_key_v3.sh",
"file_path": "scripts/store_key_v3.sh"
},
{
"evidence_id": "EV:file-9",
"type": "file_excerpt",
"title": "scripts/store_key_v4.sh",
"file_path": "scripts/store_key_v4.sh"
},
{
"evidence_id": "EV:file-10",
"type": "file_excerpt",
"title": "scripts/test_key_v5.sh",
"file_path": "scripts/test_key_v5.sh"
},
{
"evidence_id": "EV:cisco-1",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] paid_tier/stripe-checkout.sh:1: #!/usr/bin/env bash",
"file_path": "paid_tier/stripe-checkout.sh"
},
{
"evidence_id": "EV:cisco-2",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] paid_tier/stripe-setup.sh:1: #!/usr/bin/env bash",
"file_path": "paid_tier/stripe-setup.sh"
},
{
"evidence_id": "EV:cisco-3",
"type": "file_excerpt",
"title": "MCP_COERCIVE_HIDDEN_PARAMS [HIGH] README.md:14: \"Store my OpenAI key\" โ secure popup (hidden input) โ config.patch โ openclaw.js",
"file_path": "README.md"
},
{
"evidence_id": "EV:cisco-4",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] scripts/detect_test_config.sh:1: #!/usr/bin/env bash",
"file_path": "scripts/detect_test_config.sh"
},
{
"evidence_id": "EV:cisco-5",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] scripts/monitor.sh:1: #!/usr/bin/env bash",
"file_path": "scripts/monitor.sh"
},
{
"evidence_id": "EV:cisco-6",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] scripts/register_key_path.sh:1: #!/usr/bin/env bash",
"file_path": "scripts/register_key_path.sh"
},
{
"evidence_id": "EV:cisco-7",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] scripts/secure_input_mac.sh:1: #!/usr/bin/env bash",
"file_path": "scripts/secure_input_mac.sh"
},
{
"evidence_id": "EV:cisco-8",
"type": "file_excerpt",
"title": "TOOL_ABUSE_SYSTEM_MODIFICATION [CRITICAL] scripts/store_key_v3.sh:42: chmod 600 \"$TEMP_KEY_FILE\"",
"file_path": "scripts/store_key_v3.sh"
},
{
"evidence_id": "EV:cisco-9",
"type": "file_excerpt",
"title": "MCP_SYS_FILE_DESTRUCTION [CRITICAL] scripts/store_key_v3.sh:104: dd if=/dev/urandom of=\"$TEMP_KEY_FILE\" bs=1024 count=1 2>/dev/null || true",
"file_path": "scripts/store_key_v3.sh"
},
{
"evidence_id": "EV:cisco-10",
"type": "file_excerpt",
"title": "MCP_SYS_CRITICAL_ACCESS [HIGH] scripts/store_key_v3.sh:1: #!/usr/bin/env bash",
"file_path": "scripts/store_key_v3.sh"
}
]
}