{
  "skill_name": "motion-doctrine",
  "skill_path": "/Users/brianlevine/claude-projects/skill-scanner-test/skills/heygen-com-hyperframes/.claude/skills/motion-doctrine",
  "is_safe": false,
  "max_severity": "CRITICAL",
  "findings_count": 4,
  "findings": [
    {
      "id": "MANIFEST_MISSING_LICENSE_c5ae9be793",
      "rule_id": "MANIFEST_MISSING_LICENSE",
      "category": "policy_violation",
      "severity": "INFO",
      "title": "Skill does not specify a license",
      "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
      "file_path": "SKILL.md",
      "line_number": null,
      "snippet": null,
      "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)",
      "analyzer": "static",
      "metadata": {
        "aitech": null,
        "aitech_name": null,
        "aisubtech": null,
        "aisubtech_name": null,
        "aitech_mappings": [],
        "aisubtech_mappings": [],
        "framework_mappings": [],
        "taxonomy_status": "not_applicable",
        "taxonomy_source": "rule"
      }
    },
    {
      "id": "COMMAND_INJECTION_JS_CHILD_PROCESS_2e7bace67b",
      "rule_id": "COMMAND_INJECTION_JS_CHILD_PROCESS",
      "category": "command_injection",
      "severity": "CRITICAL",
      "title": "Node.js child_process module usage for shell command execution",
      "description": "Pattern detected: from \"node:child_process\"",
      "file_path": "scripts/seam-gate.mjs",
      "line_number": 14,
      "snippet": "import { spawn } from \"node:child_process\";",
      "remediation": "Avoid child_process. If required, use execFile with explicit arguments instead of exec with shell strings",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "from\\s+['\"](?:node:)?child_process['\"]",
        "matched_text": "from \"node:child_process\"",
        "signature_pattern_index": 1,
        "signature_match_start": 17,
        "signature_match_end": 42,
        "signature_pattern_sha256": "9376960e72aac8f6d944cee70e70b31657c1f32ad94358351255626f957be3d1",
        "scanner_category": "INJECTION ATTACK",
        "signature_context": "package",
        "signature_polarity": "active",
        "source_category": "command_injection",
        "category_normalization": "native",
        "semantic_facts": {
          "evidence_kind": "signature_pattern",
          "context_kind": "package",
          "signals": [
            {
              "rule_id": "COMMAND_INJECTION_JS_CHILD_PROCESS",
              "kind": "signature_polarity",
              "file_path": "scripts/seam-gate.mjs",
              "value_class": "active"
            }
          ]
        },
        "aitech": "AITech-9.1",
        "aitech_name": "Model or Agentic System Manipulation",
        "aisubtech": "AISubtech-9.1.4",
        "aisubtech_name": "Injection Attacks (e.g., SQL, Command Execution, XSS)",
        "aitech_mappings": [
          "OWASP: LLM04:2026: Supply Chain",
          "OWASP: ASI04: Agentic Supply Chain Vulnerabilities",
          "OWASP: ASI05: Unexpected Code Execution (RCE)",
          "MITRE ATLAS: AML.T0050: Command and Scripting Interpreter",
          "NIST AML: NISTAML.023: Backdoor Poisoning",
          "Cisco AI MDL Code: MDL-006",
          "Cisco AI MDL Code: MDL-007",
          "Cisco AI MDL Code: MDL-005",
          "Cisco AI MDL Code: MDL-010",
          "Cisco AI MDL Code: MDL-012",
          "Cisco AI MDL Code: MDL-014",
          "Cisco AI MDL Code: MDL-015",
          "Cisco AI MDL Code: MDL-019"
        ],
        "aisubtech_mappings": [
          "OWASP: LLM01:2026: Prompt Injection",
          "OWASP: LLM10:2026: Improper Output Handling",
          "OWASP: LLM03:2026: Excessive Agency",
          "OWASP: ASI04: Agentic Supply Chain Vulnerabilities",
          "OWASP: ASI05: Unexpected Code Execution (RCE)",
          "MITRE ATLAS: AML.T0051: LLM Prompt Injection",
          "MITRE ATLAS: AML.T0050: Command and Scripting Interpreter",
          "MITRE ATLAS: AML.T0067: LLM Trusted Output Component Manipulation",
          "MITRE ATT&CK: T1588.007: Obtain AI Capabilities",
          "NIST AML: NISTAML.024: Targeted Poisoning"
        ],
        "framework_mappings": [
          "OWASP: LLM01:2026: Prompt Injection",
          "OWASP: LLM10:2026: Improper Output Handling",
          "OWASP: LLM03:2026: Excessive Agency",
          "OWASP: ASI04: Agentic Supply Chain Vulnerabilities",
          "OWASP: ASI05: Unexpected Code Execution (RCE)",
          "MITRE ATLAS: AML.T0051: LLM Prompt Injection",
          "MITRE ATLAS: AML.T0050: Command and Scripting Interpreter",
          "MITRE ATLAS: AML.T0067: LLM Trusted Output Component Manipulation",
          "MITRE ATT&CK: T1588.007: Obtain AI Capabilities",
          "NIST AML: NISTAML.024: Targeted Poisoning"
        ],
        "taxonomy_status": "mapped",
        "taxonomy_source": "rule"
      }
    },
    {
      "id": "DATA_EXFIL_JS_NETWORK_5aea8a7215",
      "rule_id": "DATA_EXFIL_JS_NETWORK",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "Outbound network request primitives in JavaScript/TypeScript",
      "description": "Pattern detected: fetch(",
      "file_path": "scripts/seam-gate.mjs",
      "line_number": 59,
      "snippet": "const r = await fetch(url, { signal: AbortSignal.timeout(2000) });",
      "remediation": "Ensure network operations are necessary and document allowed destinations",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "\\bfetch\\s*\\(",
        "matched_text": "fetch(",
        "signature_pattern_index": 0,
        "signature_match_start": 16,
        "signature_match_end": 22,
        "signature_pattern_sha256": "57220410873979f73624c44365682301491cb30501bab8d40d073a07386ad701",
        "scanner_category": "SECURITY VIOLATION",
        "signature_context": "package",
        "signature_polarity": "active",
        "source_category": "data_exfiltration",
        "category_normalization": "native",
        "semantic_facts": {
          "evidence_kind": "signature_pattern",
          "context_kind": "package",
          "signals": [
            {
              "rule_id": "DATA_EXFIL_JS_NETWORK",
              "kind": "signature_polarity",
              "file_path": "scripts/seam-gate.mjs",
              "value_class": "active"
            }
          ]
        },
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "aisubtech": "AISubtech-8.2.3",
        "aisubtech_name": "Data Exfiltration via Agent Tooling",
        "aitech_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0024.000: Exfiltration via AI Inference API: Infer Training Data Membership",
          "MITRE ATLAS: AML.T0035: AI Artifact Collection",
          "MITRE ATLAS: AML.T0037: Data From Local System",
          "MITRE ATLAS: AML.T0057: LLM Data Leakage",
          "NIST AML: NISTAML.037: Training Data Attacks"
        ],
        "aisubtech_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI02: Tool Misuse & Exploitation",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0086: Exfiltration via AI Agent Tool Invocation",
          "NIST AML: N/A"
        ],
        "framework_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI02: Tool Misuse & Exploitation",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0086: Exfiltration via AI Agent Tool Invocation",
          "NIST AML: N/A"
        ],
        "taxonomy_status": "mapped",
        "taxonomy_source": "rule"
      }
    },
    {
      "id": "DATA_EXFIL_JS_NETWORK_42ad2677fc",
      "rule_id": "DATA_EXFIL_JS_NETWORK",
      "category": "data_exfiltration",
      "severity": "MEDIUM",
      "title": "Outbound network request primitives in JavaScript/TypeScript",
      "description": "Pattern detected: fetch(",
      "file_path": "scripts/seam-gate.mjs",
      "line_number": 122,
      "snippet": "const r = await fetch(base + \"/api/projects\");",
      "remediation": "Ensure network operations are necessary and document allowed destinations",
      "analyzer": "static",
      "metadata": {
        "matched_pattern": "\\bfetch\\s*\\(",
        "matched_text": "fetch(",
        "signature_pattern_index": 0,
        "signature_match_start": 16,
        "signature_match_end": 22,
        "signature_pattern_sha256": "57220410873979f73624c44365682301491cb30501bab8d40d073a07386ad701",
        "scanner_category": "SECURITY VIOLATION",
        "signature_context": "package",
        "signature_polarity": "active",
        "source_category": "data_exfiltration",
        "category_normalization": "native",
        "semantic_facts": {
          "evidence_kind": "signature_pattern",
          "context_kind": "package",
          "signals": [
            {
              "rule_id": "DATA_EXFIL_JS_NETWORK",
              "kind": "signature_polarity",
              "file_path": "scripts/seam-gate.mjs",
              "value_class": "active"
            }
          ]
        },
        "aitech": "AITech-8.2",
        "aitech_name": "Data Exfiltration / Exposure",
        "aisubtech": "AISubtech-8.2.3",
        "aisubtech_name": "Data Exfiltration via Agent Tooling",
        "aitech_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0024.000: Exfiltration via AI Inference API: Infer Training Data Membership",
          "MITRE ATLAS: AML.T0035: AI Artifact Collection",
          "MITRE ATLAS: AML.T0037: Data From Local System",
          "MITRE ATLAS: AML.T0057: LLM Data Leakage",
          "NIST AML: NISTAML.037: Training Data Attacks"
        ],
        "aisubtech_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI02: Tool Misuse & Exploitation",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0086: Exfiltration via AI Agent Tool Invocation",
          "NIST AML: N/A"
        ],
        "framework_mappings": [
          "OWASP: LLM02:2026: Sensitive Information Disclosure",
          "OWASP: ASI02: Tool Misuse & Exploitation",
          "OWASP: ASI09: Human-Agent Trust Exploitation",
          "MITRE ATLAS: AML.T0086: Exfiltration via AI Agent Tool Invocation",
          "NIST AML: N/A"
        ],
        "taxonomy_status": "mapped",
        "taxonomy_source": "rule"
      }
    }
  ],
  "scan_duration_seconds": 0.09008002281188965,
  "duration_ms": 90,
  "analyzers_used": [
    "static_analyzer",
    "bytecode",
    "pipeline",
    "correlation",
    "behavioral_analyzer",
    "trigger_analyzer"
  ],
  "timestamp": "2026-10-22T04:36:23.767552+00:00",
  "scan_metadata": {
    "policy_name": "default",
    "policy_version": "1.0",
    "policy_preset_base": "balanced",
    "policy_fingerprint_sha256": "3f48e661bfbc54597f97bbf3dcf2c1cbae2f596ddc79c0b44784efea326b3d1d",
    "cel": {
      "mode": "shadow",
      "runtime": "cel-go",
      "runtime_version": "v0.32.0;helper=2.3.1",
      "fact_schema": "v1",
      "expression_set_hash": "f26459b8f4a46a974d7ab0aaae34127b5b6a40d693e266e12fca03a69a6d26aa",
      "evaluated": 0,
      "retained": 4,
      "would_suppress": 0,
      "suppressed": 0,
      "fallbacks": 0,
      "projection_incomplete": 0,
      "elapsed_ms": 0.0,
      "projection_ms": 0.0,
      "evaluation_ms": 0.0,
      "errors": [],
      "per_rule": {},
      "suppressed_candidates": []
    },
    "rule_contract": {
      "status": "passed",
      "schema_version": 2,
      "checked": 1,
      "invalid_findings": 0,
      "errors": []
    },
    "taxonomy": {
      "source": "builtin",
      "version": "2.0.0",
      "name": "Cisco AI Security and Safety Taxonomy",
      "revision": "655a343ac943a51b6f61f86e47156e7752c15dc6",
      "snapshot_sha256": "413e8ce9081e6d91b78aaa0d0b1c06cdc15d0406ad319e23e9f9f4f80735c441",
      "findings": {
        "mapped": 3,
        "not_applicable": 1,
        "unmapped": 0
      }
    }
  },
  "scanner_version": "2.3.1",
  "source": "heygen-com",
  "repo_url": "https://github.com/heygen-com/hyperframes"
}