{
  "skill_name": "zoho-email",
  "skill_path": "/workspace/skills/clawhub-zoho-email-integration",
  "skill_directory": "/workspace/skills/clawhub-zoho-email-integration",
  "is_safe": false,
  "max_severity": "CRITICAL",
  "findings_count": 53,
  "findings": [
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_13e54727fa",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import requests",
      "file_path": "scripts/zoho-email.py",
      "line_number": 114,
      "snippet": "import requests",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+requests",
        "matched_text": "import requests",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_8398f5a955",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import requests",
      "file_path": "scripts/zoho-email.py",
      "line_number": 141,
      "snippet": "import requests",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+requests",
        "matched_text": "import requests",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_b4063f2753",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import urllib.request",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1808,
      "snippet": "import urllib.request",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+urllib\\.request",
        "matched_text": "import urllib.request",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_ENV_VARS_5fc08fdedf",
      "rule_id": "DATA_EXFIL_ENV_VARS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "Reading environment variables that may contain secrets",
      "description": "Pattern detected: os.environ.get('ZOHO_PASSWORD",
      "file_path": "scripts/zoho-email.py",
      "line_number": 26,
      "snippet": "PASSWORD = os.environ.get('ZOHO_PASSWORD')",
      "remediation": "Minimize access to environment variables. Document why needed",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "os\\.environ(?:\\.get)?\\s*\\([^)]*(?:KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL)",
        "matched_text": "os.environ.get('ZOHO_PASSWORD",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_ENV_VARS_65ba30a2da",
      "rule_id": "DATA_EXFIL_ENV_VARS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "Reading environment variables that may contain secrets",
      "description": "Pattern detected: os.environ.get(\"ZOHO_PASSWORD",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1768,
      "snippet": "\"zoho_password_env_set\": bool(os.environ.get(\"ZOHO_PASSWORD\")),",
      "remediation": "Minimize access to environment variables. Document why needed",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "os\\.environ(?:\\.get)?\\s*\\([^)]*(?:KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL)",
        "matched_text": "os.environ.get(\"ZOHO_PASSWORD",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_8c7fd457af",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import urllib.request",
      "file_path": "scripts/apply_oauth2.py",
      "line_number": 79,
      "snippet": "import urllib.request",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+urllib\\.request",
        "matched_text": "import urllib.request",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_BASE64_AND_NETWORK_8788a81c51",
      "rule_id": "DATA_EXFIL_BASE64_AND_NETWORK",
      "category": "data_exfiltration",
      "severity": "CRITICAL",
      "title": "Base64 encoding (often used before data exfiltration)",
      "description": "Pattern detected: base64.b64encode",
      "file_path": "scripts/apply_oauth2.py",
      "line_number": 103,
      "snippet": "return base64.b64encode(auth_string.encode()).decode()",
      "remediation": "Review base64 usage, especially if combined with network calls",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "base64\\.(?:b64encode|encodebytes)",
        "matched_text": "base64.b64encode",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_de20930d1f",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import urllib.request",
      "file_path": "scripts/oauth-setup.py",
      "line_number": 99,
      "snippet": "import urllib.request",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+urllib\\.request",
        "matched_text": "import urllib.request",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_NETWORK_REQUESTS_795a94208c",
      "rule_id": "DATA_EXFIL_NETWORK_REQUESTS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "HTTP client library imports that enable external communication",
      "description": "Pattern detected: import urllib.request",
      "file_path": "scripts/oauth-setup.py",
      "line_number": 126,
      "snippet": "import urllib.request",
      "remediation": "Ensure network access is necessary and documented. Review all URLs",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "import\\s+urllib\\.request",
        "matched_text": "import urllib.request",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "meta_reviewed": true
      }
    },
    {
      "id": "DATA_EXFIL_ENV_VARS_05239c250f",
      "rule_id": "DATA_EXFIL_ENV_VARS",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "Reading environment variables that may contain secrets",
      "description": "Pattern detected: os.environ.get('ZOHO_PASSWORD",
      "file_path": "examples/batch-cleanup.py",
      "line_number": 163,
      "snippet": "if not os.environ.get('ZOHO_EMAIL') or not os.environ.get('ZOHO_PASSWORD'):",
      "remediation": "Minimize access to environment variables. Document why needed",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "os\\.environ(?:\\.get)?\\s*\\([^)]*(?:KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL)",
        "matched_text": "os.environ.get('ZOHO_PASSWORD",
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "scanner_category": "SECURITY VIOLATION",
        "reference_depth": 0,
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_6b24edafa2",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get Specific Email",
      "file_path": "SKILL.md",
      "line_number": 220,
      "snippet": "python3 scripts/zoho-email.py get Inbox 4590",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_f4c6c034d2",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get latest email",
      "file_path": "SKILL.md",
      "line_number": 332,
      "snippet": "# List attachments",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_43ef745880",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get specific email",
      "file_path": "SKILL.md",
      "line_number": 365,
      "snippet": "email = zoho.get_email(folder=\"Sent\", email_id=\"4590\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_7606ad84e7",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export credentials",
      "file_path": "SKILL.md",
      "line_number": 500,
      "snippet": "export ZOHO_PASSWORD=\"your-app-password\"",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_skill_discovery_abuse_d34172c08f",
      "rule_id": "YARA_skill_discovery_abuse",
      "category": "skill_discovery_abuse",
      "severity": "MEDIUM",
      "title": "SKILL DISCOVERY ABUSE detected by YARA",
      "description": "Detects manipulation of skill discovery to increase unwanted activation: Perfect",
      "file_path": "SKILL.md",
      "line_number": 562,
      "snippet": "python3 scripts/zoho-email.py mark-unread INBOX 1004 1005",
      "remediation": "Review and remove skill discovery abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "skill_discovery_abuse",
        "yara_namespace": "skill_discovery_abuse",
        "matched_string": "$overpromising",
        "threat_type": "SKILL DISCOVERY ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_d669e44e79",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \\033[0;31m",
      "file_path": "test-app-password.sh",
      "line_number": 9,
      "snippet": "RED='\\033[0;31m'",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$ansi_deception",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_9928b38fe0",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \\033[1;33m",
      "file_path": "test-app-password.sh",
      "line_number": 10,
      "snippet": "YELLOW='\\033[1;33m'",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$ansi_deception",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_74a781ae01",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \\033[0;34m",
      "file_path": "test-app-password.sh",
      "line_number": 11,
      "snippet": "BLUE='\\033[0;34m'",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$ansi_deception",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_0c2a32a0f1",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \\033[0m",
      "file_path": "test-app-password.sh",
      "line_number": 12,
      "snippet": "NC='\\033[0m' # No Color",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$ansi_deception",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_917d2b5ed3",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get email: python3 scripts/zoho-email",
      "file_path": "test.sh",
      "line_number": 60,
      "snippet": "echo \"  \u2022 Get email: python3 scripts/zoho-email.py get INBOX <email_id>\"",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_465be9f8f0",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get attachments for this email",
      "file_path": "examples/attachment-demo.py",
      "line_number": 73,
      "snippet": "# Get attachments for this email",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_c044852b0f",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Read, Search, Monitor, Send",
      "file_path": "scripts/zoho-email.py",
      "line_number": 4,
      "snippet": "Handles: Read, Search, Monitor, Send emails",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_b276cc406b",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: GET, POST",
      "file_path": "scripts/zoho-email.py",
      "line_number": 183,
      "snippet": "method: HTTP method (GET, POST, PATCH, DELETE)",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_bce5367956",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: get('email', EMAIL",
      "file_path": "scripts/zoho-email.py",
      "line_number": 357,
      "snippet": "'fromAddress': self.tokens.get('email', EMAIL),",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_c7475beda3",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: get('email') or EMAIL",
      "file_path": "scripts/zoho-email.py",
      "line_number": 641,
      "snippet": "self.email = self.oauth_tokens.get('email') or EMAIL",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_d82841fbfa",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get a specific email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 922,
      "snippet": "\"\"\"Get a specific email by ID\"\"\"",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_b5f2097879",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get unread:      python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1669,
      "snippet": "print(\"  Get unread:      python3 zoho-email.py unread\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_dfbd6ab77e",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get email:       python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1670,
      "snippet": "print(\"  Get email:       python3 zoho-email.py get <folder> <id>\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_1ada164c9e",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: read:    python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1678,
      "snippet": "print(\"  Mark as read:    python3 zoho-email.py mark-read <folder> <id1> <id2> ...\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_6e66c6e204",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get unread:      python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1718,
      "snippet": "print(\"  Get unread:      python3 zoho-email.py unread\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_e9606e5a7c",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Get email:       python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1719,
      "snippet": "print(\"  Get email:       python3 zoho-email.py get <folder> <id>\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_678966696e",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: read:    python3 zoho-email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1728,
      "snippet": "print(\"  Mark as read:    python3 zoho-email.py mark-read <folder> <id1> <id2> ...\")",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_d84ee8a00e",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: get(\"email",
      "file_path": "scripts/zoho-email.py",
      "line_number": 1788,
      "snippet": "report[\"oauth_email_in_token\"] = bool(tokens.get(\"email\") or tokens.get(\"user\") or tokens.get(\"user_email\"))",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_b41522fafe",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Read, Search, Monitor, Send",
      "file_path": "scripts/apply_oauth2.py",
      "line_number": 16,
      "snippet": "Handles: Read, Search, Monitor, Send emails",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_cd52b498c8",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: Read, Search, Monitor, Send",
      "file_path": "scripts/apply_oauth2.py",
      "line_number": 20,
      "snippet": "Handles: Read, Search, Monitor, Send emails",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_tool_chaining_abuse_c61ff7a9b9",
      "rule_id": "YARA_tool_chaining_abuse",
      "category": "tool_chaining_abuse",
      "severity": "MEDIUM",
      "title": "TOOL CHAINING ABUSE detected by YARA",
      "description": "Detects suspicious tool chaining patterns that could lead to data exfiltration: get('email') or EMAIL",
      "file_path": "scripts/apply_oauth2.py",
      "line_number": 201,
      "snippet": "self.email = self.oauth_tokens.get('email') or EMAIL",
      "remediation": "Review and remove tool chaining abuse pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "tool_chaining_abuse",
        "yara_namespace": "tool_chaining_abuse",
        "matched_string": "$read_then_send",
        "threat_type": "TOOL CHAINING ABUSE",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_b1dbe4d481",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: </script>",
      "file_path": "scripts/oauth-setup.py",
      "line_number": 57,
      "snippet": "<script>setTimeout(function() { window.close(); }, 3000);</script>",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$tags",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_b1dbe4d481",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: setTimeout(",
      "file_path": "scripts/oauth-setup.py",
      "line_number": 57,
      "snippet": "<script>setTimeout(function() { window.close(); }, 3000);</script>",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$execution_functions",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_script_injection_b1dbe4d481",
      "rule_id": "YARA_script_injection",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "INJECTION ATTACK detected by YARA",
      "description": "Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: function(",
      "file_path": "scripts/oauth-setup.py",
      "line_number": 57,
      "snippet": "<script>setTimeout(function() { window.close(); }, 3000);</script>",
      "remediation": "Review and remove injection attack pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "script_injection",
        "yara_namespace": "script_injection",
        "matched_string": "$execution_functions",
        "threat_type": "INJECTION ATTACK",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_7c371c1273",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_EMAIL='your-email@domain.com'\", file",
      "file_path": "scripts/apply_oauth2_cli.py",
      "line_number": 131,
      "snippet": "print(\"  export ZOHO_EMAIL='your-email@domain.com'\", file=sys.stderr)",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_8100c6d782",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_PASSWORD='your-app-specific-password'\", file",
      "file_path": "scripts/apply_oauth2_cli.py",
      "line_number": 132,
      "snippet": "print(\"  export ZOHO_PASSWORD='your-app-specific-password'\", file=sys.stderr)'''",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_17ad0ac03b",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_EMAIL='your-email@domain.com'\", file",
      "file_path": "scripts/apply_oauth2_cli.py",
      "line_number": 137,
      "snippet": "print(\"     export ZOHO_EMAIL='your-email@domain.com'\", file=sys.stderr)",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_92d9f9a51f",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_PASSWORD='your-app-specific-password'\", file",
      "file_path": "scripts/apply_oauth2_cli.py",
      "line_number": 138,
      "snippet": "print(\"     export ZOHO_PASSWORD='your-app-specific-password'\", file=sys.stderr)'''",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_389669ef68",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_EMAIL='your-email@domain.com'\", file",
      "file_path": "scripts/add_oauth_cli.py",
      "line_number": 114,
      "snippet": "print(\"  export ZOHO_EMAIL='your-email@domain.com'\", file=sys.stderr)",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_843256dae8",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_PASSWORD='your-app-specific-password'\", file",
      "file_path": "scripts/add_oauth_cli.py",
      "line_number": 115,
      "snippet": "print(\"  export ZOHO_PASSWORD='your-app-specific-password'\", file=sys.stderr)''',",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_73c96e999a",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_EMAIL='your-email@domain.com'\", file",
      "file_path": "scripts/add_oauth_cli.py",
      "line_number": 119,
      "snippet": "print(\"     export ZOHO_EMAIL='your-email@domain.com'\", file=sys.stderr)",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "YARA_credential_harvesting_7bf43b84cd",
      "rule_id": "YARA_credential_harvesting",
      "category": "hardcoded_secrets",
      "severity": "CRITICAL",
      "title": "CREDENTIAL HARVESTING detected by YARA",
      "description": "Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: export ZOHO_PASSWORD='your-app-specific-password'\", file",
      "file_path": "scripts/add_oauth_cli.py",
      "line_number": 120,
      "snippet": "print(\"     export ZOHO_PASSWORD='your-app-specific-password'\", file=sys.stderr)'''",
      "remediation": "Review and remove credential harvesting pattern",
      "analyzer": "static",
      "metadata": {
        "yara_rule": "credential_harvesting",
        "yara_namespace": "credential_harvesting",
        "matched_string": "$leak_param",
        "threat_type": "CREDENTIAL HARVESTING",
        "meta_reviewed": true
      }
    },
    {
      "id": "llm_finding_zoho-email_0",
      "rule_id": "LLM_DATA_EXFILTRATION",
      "category": "data_exfiltration",
      "severity": "CRITICAL",
      "title": "Hardcoded Credentials in Test Scripts",
      "description": "Multiple test scripts contain hardcoded email addresses (brian@creativestudio.co.za) that could expose the developer's actual email account. While these appear to be test scripts, they demonstrate a pattern of hardcoding sensitive information and could lead to credential exposure if users copy these patterns.",
      "file_path": "test-rest-api-fixes.sh",
      "line_number": null,
      "snippet": "export ZOHO_EMAIL=\"brian@creativestudio.co.za\" in test scripts and TEST_RECIPIENT=\"brian@creativestudio.co.za\" in examples",
      "remediation": "Remove all hardcoded email addresses from test scripts. Use environment variables or placeholder values like 'user@example.com'. Add warnings in documentation about not committing real credentials.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "aisubtech": "AISubtech-8.2.3",
        "aisubtech_name": "Data Exfiltration via Agent Tooling",
        "scanner_category": "SECURITY VIOLATION",
        "meta_validated": true,
        "meta_confidence": "HIGH",
        "meta_confidence_reason": "Verified hardcoded email address exists in multiple test scripts. While not a password, it exposes a real email account and sets a bad example for users.",
        "meta_exploitability": "Medium - Requires access to test scripts, but exposes real email account",
        "meta_impact": "Medium - Email address exposure, potential spam/phishing target, bad security example"
      }
    },
    {
      "id": "llm_finding_zoho-email_1",
      "rule_id": "LLM_DATA_EXFILTRATION",
      "category": "data_exfiltration",
      "severity": "HIGH",
      "title": "Insecure Credential Storage Recommendation",
      "description": "The skill's setup instructions recommend storing credentials in plaintext files (~/.clawdbot/zoho-credentials.sh) with only basic file permissions (chmod 600). While better than no protection, this approach stores passwords in plaintext on disk, making them vulnerable to file system access, backups, or malware.",
      "file_path": "SKILL.md",
      "line_number": null,
      "snippet": "Create ~/.clawdbot/zoho-credentials.sh with export ZOHO_EMAIL and export ZOHO_PASSWORD in plaintext",
      "remediation": "Recommend using system keychains (macOS Keychain, Windows Credential Manager, Linux Secret Service) or encrypted credential stores. Provide examples using keyring libraries. Emphasize OAuth2 as the preferred authentication method.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "aisubtech": "AISubtech-8.2.3",
        "aisubtech_name": "Data Exfiltration via Agent Tooling",
        "scanner_category": "SECURITY VIOLATION",
        "meta_validated": true,
        "meta_confidence": "HIGH",
        "meta_confidence_reason": "Documentation explicitly recommends plaintext credential storage. This is a verified security anti-pattern.",
        "meta_exploitability": "Medium - Requires file system access, but plaintext credentials are easily extracted",
        "meta_impact": "High - Full email account compromise if credentials file is accessed"
      }
    },
    {
      "id": "llm_finding_zoho-email_2",
      "rule_id": "LLM_COMMAND_INJECTION",
      "category": "command_injection",
      "severity": "HIGH",
      "title": "Command Injection Risk in Email Processing",
      "description": "The zoho-email.py script processes email content and subjects that could contain malicious payloads. While the code uses json.dumps for output, there are multiple places where email content is processed without sanitization, particularly in search queries and email body handling. The IMAP search functionality accepts user-controlled query strings that are passed directly to IMAP commands.",
      "file_path": "scripts/zoho-email.py",
      "line_number": null,
      "snippet": "query parameter in search_emails() is passed to IMAP search without sanitization: mail.search(None, query)",
      "remediation": "Implement strict input validation and sanitization for all email-related queries. Use parameterized queries where possible. Validate and escape IMAP search query syntax. Add content security warnings in documentation about processing untrusted email content.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-9.1",
        "aitech_name": "Model or Agentic System Manipulation",
        "aisubtech": "AISubtech-9.1.4",
        "aisubtech_name": "Injection Attacks (SQL, Command Execution, XSS)",
        "scanner_category": "INJECTION ATTACK",
        "meta_validated": true,
        "meta_confidence": "MEDIUM",
        "meta_confidence_reason": "IMAP search injection is possible but limited in impact. The code does use IMAP library which provides some protection, but user input is not validated.",
        "meta_exploitability": "Medium - Requires crafting malicious IMAP queries, limited by IMAP protocol constraints",
        "meta_impact": "Medium - Could cause unexpected search results or errors, but unlikely to compromise system"
      }
    },
    {
      "id": "llm_finding_zoho-email_3",
      "rule_id": "LLM_UNAUTHORIZED_TOOL_USE",
      "category": "unauthorized_tool_use",
      "severity": "HIGH",
      "title": "Unrestricted Tool Usage - Missing allowed-tools Declaration",
      "description": "The skill does not declare 'allowed-tools' in its YAML manifest, meaning it can use any agent tool without restriction. The skill executes Python scripts that perform network operations, file I/O, and email operations. Users cannot verify what tools the skill will use before installation.",
      "file_path": "SKILL.md",
      "line_number": null,
      "snippet": "YAML manifest shows: allowed-tools: Not specified. Python scripts perform network requests, file operations, and execute external commands.",
      "remediation": "Add 'allowed-tools: [Python, Bash, Read, Write]' to YAML manifest to explicitly declare tool requirements. This allows users to make informed decisions about granting permissions.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-12.1",
        "aitech_name": "Tool Exploitation",
        "aisubtech": "AISubtech-12.1.2",
        "aisubtech_name": "Tool Poisoning",
        "scanner_category": "SUSPICIOUS CODE EXECUTION",
        "meta_validated": true,
        "meta_confidence": "HIGH",
        "meta_confidence_reason": "Verified that allowed-tools is not specified in manifest, and code clearly uses Python, network, and file operations.",
        "meta_exploitability": "Low - Requires malicious modification of skill code",
        "meta_impact": "Medium - Users cannot verify tool usage before installation"
      }
    },
    {
      "id": "llm_finding_zoho-email_4",
      "rule_id": "LLM_DATA_EXFILTRATION",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "OAuth2 Token Storage Without Encryption",
      "description": "OAuth2 tokens are stored in plaintext JSON files (~/.clawdbot/zoho-mail-tokens.json) without encryption. While file permissions may restrict access, the tokens (including refresh tokens) are vulnerable if the file system is compromised. Refresh tokens provide long-term access and should be protected with encryption.",
      "file_path": "scripts/zoho-email.py",
      "line_number": null,
      "snippet": "with open(token_path, 'w') as f: json.dump(tokens, f, indent=2) - tokens stored in plaintext",
      "remediation": "Encrypt OAuth2 tokens at rest using system keychain services or encrypted storage. Use libraries like 'keyring' for cross-platform secure storage. Add file integrity checks to detect token tampering.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "aisubtech": "AISubtech-8.2.3",
        "aisubtech_name": "Data Exfiltration via Agent Tooling",
        "scanner_category": "SECURITY VIOLATION",
        "meta_validated": true,
        "meta_confidence": "HIGH",
        "meta_confidence_reason": "Verified that tokens are stored in plaintext JSON. This is a common security issue with OAuth2 implementations.",
        "meta_exploitability": "Medium - Requires file system access to ~/.clawdbot/ directory",
        "meta_impact": "High - Compromised refresh token provides long-term email account access"
      }
    },
    {
      "id": "llm_finding_zoho-email_5",
      "rule_id": "LLM_RESOURCE_ABUSE",
      "category": "resource_abuse",
      "severity": "MEDIUM",
      "title": "Potential Resource Exhaustion in Bulk Operations",
      "description": "The bulk_action and empty-spam/empty-trash functions can process large numbers of emails without rate limiting or resource constraints. The code includes a limit parameter but defaults to processing 100 emails at once, which could cause performance issues or trigger rate limits on Zoho's servers.",
      "file_path": "scripts/zoho-email.py",
      "line_number": null,
      "snippet": "limit parameter defaults to 100, no rate limiting between operations, no timeout protection for large batches",
      "remediation": "Implement rate limiting between batch operations. Add configurable delays between API calls. Set reasonable default limits (e.g., 50 emails). Add progress indicators and allow interruption of long-running operations. Document Zoho API rate limits.",
      "analyzer": "llm",
      "metadata": {
        "model": "claude-sonnet-4-5-20250929",
        "overall_assessment": "This Zoho Email integration skill presents MULTIPLE SERIOUS SECURITY CONCERNS that require immediate attention. The most critical issues are: (1) hardcoded credentials in test scripts exposing real email accounts, (2) insecure plaintext credential storage recommendations, (3) command injection risks in email query processing, and (4) missing tool restrictions. The skill handles sensitive email data and credentials but lacks adequate security controls. While OAuth2 support is present, the implementation stores tokens in plaintext. The bulk operation features could be abused for resource exhaustion. The skill requires significant security improvements before production use, particularly around credential management, input validation, and security documentation.",
        "primary_threats": [
          "Data Exfiltration/Exposure",
          "Command Injection",
          "Insecure Credential Storage",
          "Missing Tool Restrictions",
          "Resource Exhaustion",
          "Social Engineering (Misleading Claims)"
        ],
        "aitech": "AITech-13.3",
        "aitech_name": "Availability Disruption",
        "aisubtech": "AISubtech-13.3.2",
        "aisubtech_name": "Compute Exhaustion",
        "scanner_category": "RESOURCE ABUSE",
        "meta_validated": true,
        "meta_confidence": "MEDIUM",
        "meta_confidence_reason": "Code shows bulk operations without rate limiting, but actual impact depends on Zoho's server-side rate limits which may provide protection.",
        "meta_exploitability": "Low - Requires intentional abuse or misconfiguration",
        "meta_impact": "Low - Could trigger rate limits or temporary account restrictions, but unlikely to cause permanent damage"
      }
    }
  ],
  "scan_duration_seconds": 53.69175052642822,
  "duration_ms": 53691,
  "analyzers_used": [
    "static_analyzer",
    "llm_analyzer",
    "meta_analyzer"
  ],
  "timestamp": "2026-02-07T22:01:15.536606"
}