FlowCutPro

Security checks across malware telemetry and agentic risk

Overview

FlowCutPro is a coherent video-generation skill, but it includes an embedded API key and under-discloses external provider and credential-handling risks.

Review carefully before installing. Only run it after removing the embedded key and configuring your own restricted VEO_API_KEY, and avoid confidential concepts unless you accept sending prompts and generated shot details to external AI providers. The evidence does not show malicious intent, but the credential handling and disclosure gaps are material enough for Review.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Tainted flow: 'url' from os.environ.get (line 193, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Content
sep = "&" if "?" in uri else "?"
    url = f"{uri}{sep}key={API_KEY}"
    try:
        with urllib.request.urlopen(urllib.request.Request(url), timeout=120) as r:
            out.write_bytes(r.read())
        mb = out.stat().st_size / 1_048_576
        print(f"    ✅ {out.name} ({mb:.1f}MB)")
Confidence
91% confidence
Finding
with urllib.request.urlopen(urllib.request.Request(url), timeout=120) as r:

Tainted flow: 'req' from os.environ.get (line 156, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Content
url = f"{uri}{sep}key={API_KEY}"
    try:
        req = urllib.request.Request(url)
        with urllib.request.urlopen(req, timeout=120) as r:
            out.write_bytes(r.read())
        mb = out.stat().st_size / 1_048_576
        print(f"    ✅ {out.name} ({mb:.1f}MB)")
Confidence
92% confidence
Finding
with urllib.request.urlopen(req, timeout=120) as r:

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
A hardcoded Google API key is embedded directly in the example and used automatically if no environment variable is set. Embedded credentials can be abused by anyone with repository access, may incur billing or quota exhaustion, and normalize insecure secret handling in downstream copies of the code.

Context-Inappropriate Capability

Medium
Confidence
99% confidence
Finding
A live Google API key is hardcoded directly in the skill, which exposes a reusable credential to anyone who can read the source, logs, or packaged artifact. This can enable unauthorized use of the associated cloud resources, quota exhaustion, billing impact, and secondary compromise if the key has broader permissions than intended.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill lacks a clear user-facing warning that user concepts are sent to an external Google API and that rendered media is saved locally. This omission undermines informed consent and can lead to unintended disclosure of sensitive prompts, proprietary ideas, or regulated content, especially given the skill's broad triggers.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
Falling back to a built-in API key means the script silently performs authenticated outbound requests even when the operator has not explicitly configured credentials. In a skill that may be reused or redistributed, this increases accidental misuse, secret leakage, and unapproved billing exposure.

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill automatically uses a credential, including a hardcoded fallback, without clear user disclosure that external paid APIs will be contacted under that credential. In a skill context, this is more dangerous because users may trigger the tool expecting local video planning but instead consume third-party quota and send authenticated requests transparently.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The user-provided concept is sent to Anthropic for shot planning and then to Google's Veo API for video generation, but the skill provides no explicit warning or consent flow about these third-party disclosures. In this skill's context, prompts may contain proprietary marketing plans, unreleased product ideas, or personal information, making silent transmission materially risky.

VirusTotal

61/61 vendors flagged this skill as clean.

View on VirusTotal