Back to skill

Security audit

Phy Video Bgm

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it advertises, but users should understand that videos may be uploaded to AI services and generated outputs replace the original audio track.

Before installing, use a virtual environment, consider pinning dependencies, and avoid processing sensitive or confidential videos unless you are comfortable sending them to Gemini and fal.ai. Keep an original copy of any video with important narration or ambient audio because the produced output replaces the original audio with generated BGM.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:30
Finding

Unpinned Third-Party Python Dependencies

Content
View full analysis
Remediation
View remediation
httpx== ``` 2. Generate and verify cryptographic hashes, then install with hash enforcement: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Require installation inside a dedicated virtual environment rather than the user's global or project-wide Python environment: ```bash python3 -m venv .venv . .venv/bin/activate python3 -m pip install --require-hashes -r requirements.txt ``` 4. Commit the reviewed dependency manifest or lock file to the Skill package and update it through a controlled dependency-review process. 5. Regularly scan direct and transitive dependencies for known vulnerabilities and review package provenance before accepting upgrades. 6. Advise users not to run package installation with root or administrator privileges. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill description does not clearly disclose that video content is sent to external services for analysis and music generation. This creates a real privacy and data-governance risk because users may provide sensitive, proprietary, or personal video files without informed consent, and broad triggering makes unintended exfiltration more likely.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition is overly broad because it activates on 'any request to add background music to a video file,' which can cause the skill to run in contexts the user did not explicitly intend. In this skill, accidental activation is more dangerous because execution may upload video content to third-party AI services and modify the file by removing its original audio.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The skill performs external transmission to fal.ai, and elsewhere also instructs upload/analysis with Gemini, meaning user media or media-derived data leaves the local environment. External transmission is expected for the feature, but it remains a security-relevant issue because it exposes potentially sensitive content to third-party services and expands the attack and compliance surface.

Content

Scanner excerpt · SKILL.md (reported line 109)May include surrounding context.

md
FAL_API_KEY = os.environ.get("FAL_API_KEY")

resp = httpx.post(
    "https://fal.run/fal-ai/lyria2",
    headers={
        "Authorization": f"Key {FAL_API_KEY}",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documented workflow strips any existing audio from the input video using '-an', but the user-facing description does not prominently warn that original audio will be removed. This can cause destructive or misleading output by silently deleting narration, ambient sound, or other important audio content from the source media.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.