Back to skill

Security audit

TCM Video Factory

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Perplexity-powered video planning tool that sends the requested topic to an external API and writes a local plan file.

Install only if you are comfortable sending the topic and generated planning context to Perplexity using your API key. Avoid entering private health details, proprietary campaign information, or regulated personal data unless that use fits your own Perplexity data-handling requirements. Expect the generated scripts to be Vietnamese-oriented by default.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (6)

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The skill transmits user-supplied topic content and generated prompts to an external third-party service (Perplexity API). If users provide sensitive health, personal, or proprietary information in the topic, that data leaves the local trust boundary and may be logged, retained, or processed by the provider, creating privacy and data-governance risk.

Content

Scanner excerpt · index.mjs (reported line 12)May include surrounding context.

js
throw new Error('Missing PERPLEXITY_API_KEY environment variable.');
  }

  const response = await fetch('https://api.perplexity.ai/chat/completions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The skill transmits user-supplied topic content and generated prompts to an external third-party service (Perplexity API). If users provide sensitive health, personal, or proprietary information in the topic, that data leaves the local trust boundary and may be logged, retained, or processed by the provider, creating privacy and data-governance risk.

Content

Scanner excerpt · index.mjs (reported line 12)May include surrounding context.

js
throw new Error('Missing PERPLEXITY_API_KEY environment variable.');
  }

  const response = await fetch('https://api.perplexity.ai/chat/completions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The prompt requires 'Vietnamese dialogue' in generated video prompts, imposing a specific language regardless of user preference. This is a natural-language locale policy issue because the skill does not offer any language choice or document a justified region-specific constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

When no argument is provided, the skill defaults to a Vietnamese topic string ('mẹo sức khỏe mùa đông'), which biases the workflow toward a specific language/locale. Because no opt-in or user choice is provided, this creates a natural-language policy concern.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 11)May include surrounding context.

json
"start": "node index.mjs"
  },
  "dependencies": {
    "node-fetch": "^3.3.2",
    "dotenv": "^16.4.5"
  }
}

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 12)May include surrounding context.

json
},
  "dependencies": {
    "node-fetch": "^3.3.2",
    "dotenv": "^16.4.5"
  }
}

Static analysis

No suspicious patterns detected.