Back to skill

Security audit

Morfeo Remotion Style

Security checks for vulnerabilities and agentic risk

Overview

This is a narrow Remotion style guide, with the main cautions being unpinned npm setup commands and CDN-loaded emoji images.

Installers should review and preferably pin the npm package versions before running the setup commands, and render in an environment where third-party CDN requests for emoji images are acceptable. The skill otherwise appears limited to branded Remotion video styling and sample UI code.

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:142
Finding
Unpinned Third-Party Package Execution and Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 142–143 **Vulnerability Type**: Unpinned npm dependencies and mutable package execution **Risk Level**: Medium ### Vulnerable Code ```bash npx create-video@latest --template blank npm i @remotion/google-fonts ``` ### Technical Analysis The documented setup process instructs users to download and execute the current release of `create-video` through `npx ...@latest`. The `latest` tag is mutable, so the code executed at installation time may differ from the version that existed when this Skill was audited. The subsequent installation of `@remotion/google-fonts` also omits an exact version. No lockfile is included to provide integrity and transitive-dependency resolution guarantees. Depending on npm configuration and package contents, installation may also execute package lifecycle scripts. This creates a supply-chain trust boundary in which future package releases, compromised maintainer accounts, or compromised transitive dependencies could introduce code that was not reviewed with this Skill. ### Attack Path 1. An attacker compromises a relevant npm publisher account, package release process, or transitive dependency. 2. The attacker publishes a malicious version and causes it to be resolved by the mutable `latest` tag or unpinned dependency range. 3. A user follows the setup commands in `SKILL.md`. 4. `npx` downloads and executes the resolved `create-video` package with the user's local permissions, or npm runs malicious package code or lifecycle scripts during installation. 5. The malicious code accesses resources available to the invoking process. This finding does not establish that the currently published packages are malicious; it identifies the unsafe, non-reproducible dependency execution mechanism. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the user running the setup commands. Depending on that user's environment, the code cou ...[truncated 257 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with a reviewed, exact package version: ```bash npx create-video@X.Y.Z --template blank ``` 2. Pin `@remotion/google-fonts` to an exact reviewed version rather than allowing mutable resolution: ```bash npm install --save-exact @remotion/google-fonts@X.Y.Z ``` 3. Commit and review a generated `package-lock.json`, including resolved package sources and integrity hashes. 4. Use `npm ci` for repeatable installation after the lockfile has been established. 5. Review the dependency tree and package lifecycle scripts before upgrades. Where compatible with the required workflow, install with lifecycle scripts disabled: ```bash npm ci --ignore-scripts ``` 6. Perform package setup in a least-privileged, isolated environment without production credentials or unnecessary filesystem access. 7. Use an approved npm registry and enforce dependency provenance, integrity, and package-version policies in CI.
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)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger condition includes broad language such as 'any Remotion video request from Paul,' which can cause the skill to activate outside narrowly intended contexts. Overly broad activation increases the chance that style instructions are injected into unrelated tasks, potentially confusing higher-priority workflows or causing unintended behavior in agent orchestration.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Missing User Warnings

Low
Confidence
82% confidence
Finding
This code constructs a remote jsDelivr URL and loads it via an <img> tag, which causes the user's browser to make a network request to a third-party CDN. The file contains only an internal comment about the CDN and no user-facing warning, confirmation, or disclosure about the external fetch.

Natural-Language Policy Violations

Low
Confidence
91% confidence
Finding
This TSX file contains hard-coded Spanish phrases such as "ESTO ES BLACK MIRROR", "Todo el mundo habla de", and "Le mandás un audio y te responde". Under the language/locale policy, forcing a specific language without user opt-in or a documented regional justification is a natural-language policy concern.

Static analysis

No suspicious patterns detected.