Back to skill

Security audit

PPT to Video Generator

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says, but its rendering instructions use an unpinned npx package command that can execute changing third-party code on the user's machine.

Review before installing or using on sensitive projects. Prefer pinning Remotion in a package.json with a lockfile and running the local executable in a sandboxed workspace without unnecessary credentials. The Chinese-only output behavior is disclosed, so use this skill only when that matches the intended video language.

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:148
Finding
Unpinned Third-Party Package Execution Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 148 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```bash npx remotion render src/index.tsx ppt-video out/video.mp4 --overwrite --concurrency=1 ``` ### Technical Analysis The skill directs the agent to execute `remotion` through `npx` without specifying an exact reviewed version. The project contains no package manifest or lockfile that constrains dependency resolution and no documented integrity or provenance verification. If a trusted local installation is unavailable, `npx` may download and execute a package obtained from the configured package registry. The effective code can therefore change after the skill has been reviewed. This creates a supply-chain risk because an unexpectedly changed or compromised package release could execute code with the permissions of the user running the skill. The command is not evidence that the skill is intentionally malicious. The issue is the unsafe and mutable dependency-resolution mechanism documented by the skill. ### Attack Path 1. A user asks the agent to convert a PowerPoint presentation into a video. 2. The agent follows the rendering instructions in `SKILL.md`. 3. The environment does not contain a trusted, locally pinned `remotion` executable. 4. `npx` resolves the package through the configured external package registry. 5. A compromised, replaced, or otherwise unreviewed package version is downloaded and executed. 6. Package installation hooks or runtime code execute with the privileges of the agent process. 7. The dependency may read or modify accessible project files, tamper with generated media, access credentials available to the process, or initiate network connections. Successful exploitation depends on control or compromise of the resolved package, registry, registry configuration, or dependency-resolution path. ### Impact Assessment Malicious dependency code wo ...[truncated 486 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Add a `package.json` that declares an exact, reviewed Remotion version rather than using a floating dependency range. 2. Generate and commit the package-manager lockfile so all transitive dependencies resolve deterministically. 3. Install dependencies with a lockfile-enforcing command such as `npm ci`. 4. Invoke the verified local executable, for example: ```bash ./node_modules/.bin/remotion render src/index.tsx ppt-video out/video.mp4 --overwrite --concurrency=1 ``` 5. Where compatible with the dependency, disable installation lifecycle scripts using `npm ci --ignore-scripts`. 6. Verify package provenance and lockfile integrity, use an approved registry, and reject unexpected registry overrides. 7. Run rendering in a sandbox or container with minimal filesystem access, no unnecessary credentials, restricted outbound networking, and a non-privileged user. 8. Regularly scan the pinned direct and transitive dependencies for known vulnerabilities before approving version updates. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The description states the skill generates videos with Chinese voiceover and synchronized subtitles as part of its default behavior. This is a natural-language locale policy concern because it forces a specific language rather than offering opt-in or indicating the skill is explicitly limited to Chinese-language presentations.

Natural-Language Policy Violations

Medium
Confidence
98% confidence
Finding
The instruction "旁白、字幕均为简体中文" requires narration and subtitles to be in Simplified Chinese with no user opt-in or alternative locale path. This violates the language/locale policy criterion because it imposes a specific language on all uses of the skill.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The skill invokes `npx remotion` without pinning an exact package version, which makes builds non-reproducible and exposes execution to upstream package changes or a compromised dependency release. In a skill that users may run directly on their systems or VPS instances, this creates a real supply-chain risk because arbitrary code from the fetched package can execute during install/render.

Static analysis

No suspicious patterns detected.